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'))
相关文章推荐
- 使用python递归批量重命名文件
- python语法基础归纳(2)--序列对象
- python 里面的 ssh 里面的bh_sshRcmd.py
- Python环境的搭建
- python线程池技术
- editplus与notepad++写python乱码
- 菜鸟入门_Python_机器学习(1)_线性可分的双月实验
- python_mysql
- python的reduce, sum的使用
- Python趣味编程---Python也会讲笑话
- python简介
- Python使用traceback.print_exc()来代替print e 来输出详细的异常信息
- python语法基础归纳(1)
- [leetcode] 258. Add Digits
- python socket服务器进行远程升级
- Python风格规范
- Python 列表count()函数元素次数统计
- Python 列表count()函数元素次数统计
- python list排序
- python list排序