python 获取本机ip地址的方法(unix 平台)

1
2
3
4
5
6
7
8
9
10
11
12
13
import socket
import fcntl
import struct
def (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(‘lo’)环回地址
#get_ip_address(‘eth0’)主机ip地址