簡體   English   中英

如何在python flask中將服務器IP(Web訪問IP)獲取為變量

[英]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.10www.example.com

如果要剝去端口( 8080 ),可以使用類似

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM