python的socket包含了丰富的函数和方法可以获得本机的ip地址信息,socket对象的gethostbyname方法可以根据主机名获得本机ip地址,socket对象的gethostbyname_ex方法可以获得本机所有ip地址列表
第一种方法:通过socket.gethostbyname方法获得
import socket
localIP = socket.gethostbyname(socket.gethostname())
print "local ip:%s " % localIP
|
返回结果如下:
第二种方法:通过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 ,
struct.pack( '256s' , ifname[: 15 ])
)[ 20 : 24 ])
|