通过Python在windows和linux中获取当前网络IP地址的一些方法
2016-11-20 13:38
916 查看
获取当前网络的IP地址主流的方式有三种,我实验时,环境是ubuntu16.04,基于Python2.7,发现前两种都是获取的‘127.0.0.1’,这不是我想要的,而第三种这可以很好的解决我的问题,下面列出这三种方法:
localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP
方法二:通过socket.gethostbyname_ex方法获得本机主机名和ip地址列表
import socket
ipList = socket.gethostbyname_ex(socket.gethostname())
print(ipList)
def get_ip(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])
这里的网卡接口名字可以在“连接信息”-->“接口:”--->“以太网(***)” 括号里面的就是网卡接口名
参考链接:
http://blog.csdn.net/tao_627/article/details/49967185 http://blog.csdn.net/tao_627/article/details/49967185 http://www.jb51.net/article/62559.htm
方法一:通过socket.gethostbyname方法获得
import socketlocalIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP
方法二:通过socket.gethostbyname_ex方法获得本机主机名和ip地址列表
import socketipList = socket.gethostbyname_ex(socket.gethostname())
print(ipList)
方法三:通过指定网卡接口的名字
import socket, fcntl, structdef get_ip(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])
这里的网卡接口名字可以在“连接信息”-->“接口:”--->“以太网(***)” 括号里面的就是网卡接口名
参考链接:
http://blog.csdn.net/tao_627/article/details/49967185 http://blog.csdn.net/tao_627/article/details/49967185 http://www.jb51.net/article/62559.htm
相关文章推荐
- python windows下通过SSH获取linux系统cpu、内存、网络使用情况
- python在windows和linux下获得本机本地ip地址方法小结
- windows C++ 通过UDP广播获取网络中所有设备ip地址
- Linux 树莓派 网络编程中服务端通过套接字获取客户端ip地址
- linux 下获取当前网络连接状态的两种方法
- linux 下获取当前网络连接状态的两种方法
- linux 下获取当前网络连接状态的两种方法
- windows C++ 通过UDP广播获取网络中所有设备ip地址
- linux 下获取当前网络连接状态的两种方法
- 用python获取windows或linux主机名的方法
- 在Linux与Windows上获取当前堆栈信息的方法
- 通过读proc等方式获取Linux系统状态信息的一些方法
- Linux通过命令仅获取IP地址的方法
- python获取本机局域网IP地址(适用于Windows、Linux、Mac)
- linux 下获取当前网络连接状态的两种方法
- linux 下获取当前网络连接状态的两种方法
- linux 下获取当前网络连接状态的两种方法
- linux 下获取当前网络连接状态的两种方法
- 腾讯新浪通过IP地址获取当前地理位置(省份)的接口
- Linux 2.6版内核中通过模块获取sys_call_table地址的方法