两种方法:
您需要询问绑定到eth0
接口的IP地址。可从@L_404_0@
import netifaces as ni
ni.ifaddresses('eth0')
ip = ni.ifaddresses('eth0')[ni.AF_INET][0]['addr']
print ip # should print "192.168.100.37"
您还可以通过以下方式获取所有可用接口的列表
ni.interfaces()
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.soCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
get_ip_address('eth0') # '192.168.0.110'
注意:检测IP地址以确定您正在使用的环境是很不容易的事情。几乎所有框架都提供了一种非常简单的方法来设置/修改环境变量以指示当前环境。尝试查看有关此内容的文档。它应该像做一样简单
if app.config['ENV'] == 'production':
#send production email
else:
#send development email