python获得本机本地ip地址的方法汇总

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

python的socket包含了丰富的函数和方法可以获得本机的ip地址信息,socket对象的gethostbyname方法可以根据主机名获得本机ip地址,socket对象的gethostbyname_ex方法可以获得本机所有ip地址列表

第一种方法:通过socket.gethostbyname方法获得
import socket
localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP

返回结果如下:
'172.16.34.102'

第二种方法:通过socket.gethostbyname_ex方法获得本机主机名和ip地址列表
ipList = socket.gethostbyname_ex(socket.gethostname())
print(ipList)

返回结果如下:
('sharejs.com', [], ['172.16.34.102', '169.254.185.115'])

以上两种方法在linux下也可以使用,linux下还以通过下面的代码获取本机ip地址
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])

 

标签: linux 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:python线程同步

下一篇:python 多线程优先队列Queue