Django应用程序获取eth0当前IP地址的最佳方式是什么

时间:2014-02-06 12:29:15

标签: python django

我有一个Django应用程序(由于不明原因)需要知道它运行的服务器的IP地址,以便将其呈现给客户端。我非常确定服务器将启动并运行eth0,所以我需要eth0的地址。

最好的方法是什么?理想情况下,这应该在uwsgi启动时枚举,而不一定是每个请求。我考虑过在settings.py中添加一些代码,但认为可能会在每次请求时运行/枚举。

编辑我应该补充一点,这是一个debian linux服务器,运行nginx并在uwsgi中运行Django应用程序。

1 个答案:

答案 0 :(得分:1)

这是我用来获取公共面向ip(在* nix系统上)的代码:

# Hack to find machine NIC IP
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.4.4", 80))
MACHINE_IP = s.getsockname()[0]
s.close()