Python获取本机IP(多网卡)

简介:

 Python获取本机IP地址的一般方法为

1
2
3
import  socket
 
IP  =  socket.gethostbyname(socket.gethostname())

  通过gethostname获取主机名,再用gethostbyname将主机名转换为IP地址。

  那么,问题来了。如果主机有多个网卡/IP,怎样获取某个指定的IP地址呢?

  一个方法是通过socket.gethostbyname_ex获取主机IP地址列表,然后遍历列表取得自己需要的IP。

1
2
3
4
5
6
7
8
9
10
11
12
13
import  socket
 
#多网卡情况下,根据前缀获取IP
def  GetLocalIPByPrefix(prefix):
     localIP  =  ''
     for  ip  in  socket.gethostbyname_ex(socket.gethostname())[ 2 ]:
         if  ip.startswith(prefix):
             localIP  =  ip
     
     return  localIP
     
     
print (GetLocalIPByPrefix( '192.168' ))

  更简单的方法(不用修改代码,还是用socket.gethostname函数),是通过配置hosts文件改变IP优先级。

  上面的方法只支持IPv4,如果要获取IPv6信息,参考socket.getaddrinfo


相关阅读:

1、socket — Low-level networking interface

2、用Python获取自己的外网IP


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1686735如需转载请自行联系原作者


RQSLT

相关文章
|
21天前
|
数据挖掘 API 数据安全/隐私保护
python请求模块requests如何添加代理ip
python请求模块requests如何添加代理ip
|
22天前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
22天前
|
Python
Python动态IP代理防止被封的方法
Python动态IP代理防止被封的方法
|
22天前
|
存储 API Python
python之代理ip的配置与调试
python之代理ip的配置与调试
|
22天前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
22天前
|
存储 数据处理 Python
Python构造代理IP池提高访问量
Python构造代理IP池提高访问量
|
22天前
|
数据采集 API Python
python关于ip代理池的获取和随机生成
python关于ip代理池的获取和随机生成
|
22天前
|
数据采集 存储 安全
python检测代理ip是否可用的方法
python检测代理ip是否可用的方法
|
1月前
|
Python Linux iOS开发
使用 Python 打印本机 Mac 地址
使用 Python 打印本机 Mac 地址
11 0
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
Python爬虫-使用代理伪装IP
介绍代理,设置代理,使用代理伪装IP案例
457 0