您的位置:首页 > 编程语言 > Python开发

Python 获取本机ip地址

2016-04-19 22:42 417 查看
通过socket.gethostbyname(socket.gethostname())的方式只能获取到自环网地址127.0.0.1,要获取到其他网卡(如eth0)ip地址,需通过ioctl实现:

import socket
import fcntl
import struct

def getip(ifname):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
netaddr = fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15].encode('utf-8')))
ipaddr = socket.inet_ntoa(netaddr[20:24])

return ipaddr
except OSError as oe:
print ('No such device: ', ifname)

print ('lo: ', getip('lo'))
print ('eth0: ', getip('eth0'))
print ('eth1: ', getip('eth1'))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: