获取当前网络的IP地址主流的方式有三种,我实验时,环境是ubuntu16.04,基于Python2.7,发现前两种都是获取的‘127.0.0.1’,这不是我想要的,而第三种这可以很好的解决我的问题,下面列出这三种方法:
方法一:通过socket.gethostbyname方法获得
import socketlocalIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP
方法二:通过socket.gethostbyname_ex方法获得本机主机名和ip地址列表
import socket
ipList = socket.gethostbyname_ex(socket.gethostname())
print(ipList)
方法三:通过指定网卡接口的名字
import socket, fcntl, struct
def get_ip(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(