文件名:getip.py
#!/usr/bin/python
#conding:utf-8
import socket,fcntl,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])
print get_ip_address('lo')
print get_ip_address('wlan0')
执行结果:
$ python getip.py
127.0.0.1
192.168.2.102
本机信息:
$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:35657 errors:0 dropped:0 overruns:0 frame:0
TX packets:35657 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3487215 (3.4 MB) TX bytes:3487215 (3.4 MB)
wlan0 Link encap:Ethernet HWaddr 20:7c:8f:69:f2:b5
inet addr:192.168.2.102 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::227c:8fff:fe69:f2b5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14399 errors:0 dropped:0 overruns:0 frame:0
TX packets:17826 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6866206 (6.8 MB) TX bytes:2687637 (2.6 MB)