用Python写一个获取活动网卡ip及网卡类型的程序

前言:

这里获取的是网卡的设备名称然后通过设备名称判断网卡类型,如无线网卡、有线网卡、虚拟网卡,其他网卡(如vpn客户端软件);使用如下代码打包后的程序可运行于win7、win10、win11系统;Python版本为3.8.9;因为工作中临时用到,就随手写的,所以代码规范没有太注意,看不懂的可以打断点分析,不过相信大家都能看的,确实非常简单,需要其他信息的在此基础上自行修改就行。

源码:

# -*- coding: utf-8 -*-

'''
需要的数据:
Wmic Path Win32_NetworkAdapterConfiguration get IPAddress,Index
Wmic Path Win32_NetworkAdapter get productname,Index
以上是获取当前活动网卡及网卡信息的两条命令!可用cmd或Powershell运行。
'''    

import subprocess
import re
import os
# ret, val = subprocess.getstatusoutput(r"Wmic Path Win32_NetworkAdapter get GUID,MACAddress,NetEnabled,productname,Index")
ret, val = subprocess.getstatusoutput(r"Wmic Path Win32_NetworkAdapterConfiguration get Index")
# print(ret)
#print(val)
list1=val.split("\n\n")  # 每个一行中间相隔2个换行!
list1.pop()  # 去除最后一个无用的元素
#print(list1)

ret1, val1 = subprocess.getstatusoutput(r"Wmic Path Win32_NetworkAdapterConfiguration get IPAddress")
# print(ret)
#print(val1)
list2=val1.split("\n\n")  # 每个一行中间相隔2个换行!
list2.pop()  # 去除最后一个无用的元素
#print(list2)

ret2, val2 = subprocess.getstatusoutput(r"Wmic Path Win32_NetworkAdapter get index")
# print(ret)
#print(val1)
list3=val2.split("\n\n")  # 每个一行中间相隔2个换行!
list3.pop()  # 去除最后一个无用的元素
#print(list3)

ret3, val3 = subprocess.getstatusoutput(r"Wmic Path Win32_NetworkAdapter get productname")
# print(ret)
#print(val1)
list4=val3.split("\n\n")  # 每个一行中间相隔2个换行!
list4.pop()  # 去除最后一个无用的元素
#print(list4)

ret4, val4 = subprocess.getstatusoutput(r"Wmic Path Win32_NetworkAdapter get NetEnabled")
# print(ret)
#print(val1)
list5=val4.split("\n\n")  # 每个一行中间相隔2个换行!
list5.pop()  # 去除最后一个无用的元素
#print(list5)

n=0
print("############ 当前活动网卡 #############")
for a,b in enumerate(list5):
    
    c=list5[a]
    d=c.split(" ")
    e=d[0]
    # print(len(e))    
    if e=="TRUE":
        #print("成立")
        #print(n)
        #print("ip:{}\nproductname:{}\n".format(list2[n],list4[n]))
        f=list2[n]
        g=list4[n]
        #print(f,g)
        list6=[]
        for i in f:
             list6.append(i)
        m=2
        list7=[]
        for p in list6:
             if m<15:
                  list7.append(list6[m])
             m=m+1
        ip="".join(list7)
        print("IPAddess:{}\nProductname:{}\n".format(ip,g))
    #else:
        #print("不成立")
    n=n+1
os.system("pause") # 暂停窗口关闭

运行结果:

win10

win7 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值