获取当前网络的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(), 0x8915, struct.pack('256s', i

本文介绍了三种在Ubuntu 16.04和Python 2.7环境下获取当前网络IP地址的方法,包括使用socket.gethostbyname、socket.gethostbyname_ex以及通过指定网卡接口名字。前两种方法通常返回'127.0.0.1',而第三种方法能有效解决问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



