1. 程式人生 > >django-返回客戶端外網ip服務

django-返回客戶端外網ip服務

在伺服器應用初始化的時候,比如salt-minion,需要在配置檔案裡說明自己的id,一般用ip。

如果都在一個內網裡,從ip命令裡獲取就行了。

但現在的企業後臺環境更加複雜,很多都是跨機房、有物理機,也有云主機。像salt,minion和master不一定在同一個內網。所以都需要自身公網ip

雲主機的外網ip都是mapping的,從ip命令無法得知。

可以這樣:

用curl ipconfg.me這些服務,返回自己的公網ip。

但是太慢了,10s有的。

所以還是自己寫一個

使用django

request.META裡包含了客戶端的很多資訊,REMOTE_ADDR就是對方的外網IP。

把這個訊息返回回去就行了

def return_wip(request):

    ip = request.META['REMOTE_ADDR']
    return HttpResponse(ip)

  

使用curl請求地址,就能獲取

curl http://192.168.144.76:8000/deploy/return_wip/
192.168.144.86