[英]How to get server ip (web access ip) as a variable in python flask
我有一台Python燒瓶服務器,它在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,此方法實際上沒有任何意義。
有什么方法可以將訪問網絡服務器的任何“ 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中有任何方法嗎?
您可以使用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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.