Javascript 如何在python中获取服务器ip(web访问ip)作为变量

Javascript 如何在python中获取服务器ip(web访问ip)作为变量,javascript,python,html,flask,Javascript,Python,Html,Flask,我有一个Python flask服务器,它在端口8080上为我服务。服务器可以通过NAT进行访问。服务器的实际IP为192.168.200.10,NAT后为192.168.100.10 我有一个VNC服务器在同一台服务器上运行,我使用 def sysip(): sys_cmd = "ip -f inet a show enp0s31f6| grep inet| awk '{ print $2}' | cut -d/ -f1" sysip = os.popen(sys_cmd).

我有一个Python flask服务器,它在端口8080上为我服务。服务器可以通过NAT进行访问。服务器的实际IP为192.168.200.10,NAT后为192.168.100.10

我有一个VNC服务器在同一台服务器上运行,我使用

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
Web部件

<a class="btn btn-primary btn-sm" href="http://{{sysip}}:6080/vnc.html" target="_blank" role="button">console </a>

但由于使用NAT,这种方法实际上毫无意义

是否有任何方法可以将访问web服务器的任何“IP”用户附加为vnc IP

例如:使用NAT后的主服务器

现在对于VNC,我得到了(因为上面的脚本)

相反,我需要

Flask或javascript中是否有任何方法?

您可以使用请求头:

from flask import request
hostname = request.headers.get('Host')
这将为您提供浏览器用于执行请求的主机名,例如
192.168.200.10
,或
www.example.com

如果要剥离端口(
8080
),可以使用

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

@不客气。我编辑了我的问题,提出了一种更通用的剥离端口号的方法。