在有多个网卡,配置了多个IP的情况下,python 获取本地网卡的主IP

如图所示有多个网卡

本地网卡配置了多个IP
class Public_IPOp:
@staticmethod
def GetLocalIP():
rt = [False]
# 根节点
reg_root = win32con.HKEY_LOCAL_MACHINE
# 网卡设备键的路径
reg_path = r"SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}"
# 权限和参数设置
reg_flags = win32con.WRITE_OWNER | win32con.KEY_WOW64_64KEY | win32con.KEY_ALL_ACCESS
# 网卡IP信息地址
IP_Path = r"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
try:
key = win32api.RegOpenKeyEx(reg_root, reg_path, 0, reg_flags)
for item in win32api.RegEnumKeyEx(key):
# 先判断是否是PCI设备
try:
subPath = reg_path + '\\' + item[0]
subkey = win32api.RegOpenKey(reg_root, subPath, 0, reg_flags)
except:
pass
# rt.clear()
# rt.append(False)
# rt.append(subPath+'拒绝访问')
try:
if 0 == win32api.RegQueryValueEx(subkey, 'DeviceInstanceID')[0].find('PCI'):
# 判断是否是ethernet
LowerRangePath = reg_path + '\\' + item[0] + '\\Ndi\\Interfaces'
LowerRangekey = win32api.RegOpenKey(reg_root, LowerRangePath, 0, reg_flags)
if 'ethernet' == win32api.RegQueryValueEx(LowerRangekey, 'LowerRange')[0]:
ip_path = IP_Path + '\\' + win32api.RegQueryValueEx(subkey, 'NetCfgInstanceId')[0]
# print(ip_path)
IpKey = win32api.RegOpenKey(reg_root, ip_path, 0, reg_flags)
if len(win32api.RegQueryValueEx(IpKey, 'IPAddress')) > 0:
if len(win32api.RegQueryValueEx(IpKey, 'IPAddress')[0]) > 0:
# print(win32api.RegQueryValueEx(IpKey, 'IPAddress')[0][0])
rt.clear()
rt.append(True)
rt.append(win32api.RegQueryValueEx(IpKey, 'IPAddress')[0][0]) except:
pass
# rt.clear()
# rt.append(False)
# rt.append(item[0]+'系统找不到DeviceInstanceID')
# 关闭键
win32api.RegCloseKey(key)
except Exception as e:
rt.clear()
rt.append(False)
rt.append("注册表拒绝访问,请检查路径%s是否存在或以管理员身份运行" % (reg_path)) return rt
在有多个网卡,配置了多个IP的情况下,python 获取本地网卡的主IP的更多相关文章
- ioctl()获取本地网卡设备信息
获得eth0接口所有信息: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #inclu ...
- VC获取物理网卡的MAC地址
获取网卡的MAC地址的方法很多,如:Netbios,SNMP,GetAdaptersInfo等.经过测试发现 Netbios 方法在网线拔出的情况下获取不到MAC,而 SNMP 方法有时会获取多个重复 ...
- 烂泥:VMWare Workation双网卡配置IP地址
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...
- Linux网卡配置及学习linux的注意事项
一.网卡配置 1.ifconfig网卡信息,配置IP ifconfig eth0 192.168.2.102 2.修改网卡配置(连接不了可能是IP给占用了) 进入编辑界面命令:vi /etc/sysc ...
- centos网卡配置和防火墙停止和启动
Linux 设置网卡配置ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static ...
- 【转】Ubuntu网卡配置
一.网卡地址配置Ubuntu的网络配置文件是:/etc/network/interfaces1.以DHCP 方式配置网卡 auto eth0 iface eth0 inet dhcp用sudo ...
- Ubuntu 为网卡配置静态IP地址
为网卡配置静态IP地址编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces并用下面的行来替换有关eth0的行:# The primar ...
- 给网卡配置10个临时ip地址,但是不配置192.168.17.15这个ip
给网卡配置10个临时ip地址,但是不配置192.168.17.15这个ip #!/bin/bash `;do ];then continue fi ifconfig eth0:$i .$i netma ...
- linux学习之centos(三):网卡配置
Linux系统版本:Centos 6.5 在linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用中,使用远程工具SecureCRT,通过“ifconfig eth0 + ...
随机推荐
- SDN上机第三次作业
1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 使用miniedit进行创建操作 ...
- Java 12 骚操作, 文件比对居然还能这样玩!
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 之前分享了一些 Java 12 的骚操作,今天继续,今天要分享的是 Java 12 中的文件比对骚操作. ...
- Alpha总体规划 & 任务分解
目录 Alpha阶段项目目标 任务拆解和优先级 总体规划 Alpha-1任务分配 Alpha-2任务分配 Alpha阶段项目目标 初步实现北航社团小程序: 北航社团小程序基础功能(优先级中的高两级,即 ...
- easyui datagrid怎么动态获取表头的列名及显示名称
说明:目前使用easyui combobox多选属性,绑定的数据源是来自datagrid的表头的列名及显示名称 处理方法: //获取冻结的数据源并返回key,value格式数据 var GetFroz ...
- ISO/IEC 9899:2011 引言
引言 1.伴随着新的设备以及扩展字符集的引入,可能会将新的特性添加到此国际标准中.在此语言和库条款中的子条款提醒了实现者与程序员可能会与将来所新增特性产生冲突的用法,尽管它们现在本身是合法有效的. 2 ...
- Qt请求http地址数据
QNetworkAccessManager *manager = new QNetworkAccessManager(this);; QNetworkRequest network_request; ...
- [LeetCode] 140. Word Break II 单词拆分II
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, add space ...
- [LeetCode] 340. Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串
Given a string, find the length of the longest substring T that contains at most k distinct characte ...
- LeetCode,3. 无重复字符的最长子串
看了各位大神的,真是难堪,尤其是各种c++动不动就击败99%...我用python,换了三次算法,改了十几次bug,才击败5%....贴出来纪念下吧. 题目如下: 给定一个字符串,请你找出其中不含有重 ...
- django models.update
json/dict类型数据更新字段目前主流的web开放方式都讲究前后端分离,分离之后前后端交互的数据格式大都用通用的jason型,那么如何用最少的代码方便的更新json格式数据到数据库呢?同样可以使用 ...