为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python Flask中获取服务器ip(网络访问ip)作为变量

如何在python Flask中获取服务器ip(网络访问ip)作为变量

慕森卡 2021-08-26 16:44:10
我有一个 Python Flask 服务器,它在端口 8080 上为我服务。服务器可以通过 NAT 访问。服务器的真实 IP 是 192.168.200.10,在 NAT 之后这将是 192.168.100.10。我有一台运行在同一台服务器上的 VNC 服务器,我通过使用获取服务器 IP,def sysip():     sys_cmd = "ip  -f inet a show enp0s31f6| grep inet| awk '{ print $2}' | cut -d/ -f1"     sysip = os.popen(sys_cmd).read()             return sysip网页部分,<a class="btn btn-primary btn-sm" href="http://{{sysip}}:6080/vnc.html" target="_blank" role="button">console </a>但是这种方法实际上没有任何意义,因为使用了 NAT。有什么方法可以将访问 Web 服务器的任何“IP”用户附加为 vnc ip 吗?例如:http : //192.168.100.10 : 8080 -- 使用NAT后的主服务器现在对于 VNC 我得到了http://192.168.200.10:6080/vnc.html (因为上面的脚本)相反,我需要http://192.168.100.10:6080/vnc.html在 Flask 或 javascript 中有什么方法吗?
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您可以使用Host请求标头:

from flask import request
hostname = request.headers.get('Host')

这应该为您提供浏览器用于执行请求的主机名,例如192.168.200.10, 或www.example.com

如果你想剥离端口 ( 8080),你可以使用类似的东西

hostname = request.headers.get('Host').split(':')[0]


查看完整回答
反对 回复 2021-08-26
  • 1 回答
  • 0 关注
  • 824 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信