当前位置: 首页 > backend >正文

网页端 VUE+C#/FastAPI获取客户端IP和hostname

1 IP可以获取,但是发现获取到的是服务端的IP,如何解决呢。

   如果采用nginx反向代理,那么可以在conf/nginx.conf文件中配置

location /WebApi/

{

proxy_pass http://localhost:5000/;  #这个/会替换location种的WebApi路径

#关键,加客户端真实IP到请求头,用于后端服务获取原始访问者IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

2 网页端hotsname和username获取不到,只能获取到服务端,这是因为JavaScript的浏览器机制导致的。目前如下只有一种方案(未测试,供参考),否则需要用户显示输入。

#这个方案是从ip反向解析hostname,不过需要内网环境配置

import socket
from fastapi import Request

@app.get("/client-ip")
async def get_hostname(request: Request):
    client_ip = request.client.host
    try:
        hostname = socket.gethostbyaddr(client_ip)[0]  # IP反向解析
    except socket.herror:
        hostname = "Unknown"
    return {"ip": client_ip, "hostname": hostname}
 

http://www.xdnf.cn/news/12526.html

相关文章:

  • LOOI机器人的技术实现解析:从手势识别到边缘检测
  • 深度解读JS内存机制:8种泄漏案例与优化方案
  • RFC8489-STUN
  • Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
  • 什么是空闲钩子函数?
  • MySQL数据库表设计与索引优化终极指南
  • Linux驱动:再看静态映射和动态映射
  • C#中的路由事件(Routed Events)
  • k8s入门教程(集群部署、使用,镜像拉取失败网络问题排查)
  • freeRTOS xQueueGenericSend以及xQueueGenericReceive函数疑问
  • 在uni-app中如何从Options API迁移到Composition API?
  • CMake控制VS2022项目文件分组
  • [蓝桥杯 2024 国 B] 立定跳远
  • Linux中shell编程表达式和数组讲解
  • 使用C/C++和OpenCV实现图像拼接
  • Python绘图库及图像类型之特殊领域可视化
  • CAU人工智能class7 迁移学习
  • JAVA-什么是JDK?
  • 【动手学深度学习】2.6. 概率
  • VTK 显示文字、图片及2D/3D图
  • rocketmq 之 DLeger集群,启动ACL 1.0,集成rocektmq-mqtt实践
  • pe文件结构(TLS)
  • window安装docker\docker-compose
  • 每日算法刷题Day24 6.6:leetcode二分答案2道题,用时1h(下次计时20min没写出来直接看题解,节省时间)
  • Java线程卡死问题定位
  • 商业卫星推进与控制系统电源芯片的国产替代研究
  • 智谱清言沉思智能体,天工智能体,agenticSeek等AI Agent测试记录
  • 黄晓明新剧《潜渊》定档 失忆三面间谍开启谍战新维度
  • 一些免费的大A数据接口库
  • LLaMA-Factory的5种推理方式总结