python得到本机IP地址,在windows和linux下稍有不同。
一、windows下获得IP地址
方法一
使用拨号上网,会有本地ip与外网ip,使用python得到这两个ip,使用gethostbyname和gethostbyname_ex函数。
例1:
#!/usr/bin/env python
import socket
localIP = socket.gethostbyname(socket.gethostname()) #得到本地IP地址
print "local ip:%s "%localIP
ipList = socket.gethostbyname_ex(socket.gethostname())
for i in ipList:
if i != localIP:
print "external IP:%s"%i
方法二
例2,socket模块取IP地址:
#!/usr/bin/env python
import socket
myname = socket.getfqdn(socket.gethostname())
myaddr = socket.gethostbyname(myname)
Linux下获得IP地址的方法
二、linux下获取本机ip地址。
例3,socket模块与fcntl模块用法。
#!/usr/bin/env python
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])