Python编程获得本机所有网络链接的ip地址

一、前言

本文使用Python编程获得本机所有网络链接的ip地址,主要思路为:通过os模块调用cmd命令ipconfig,将返回的结果

保存,然后使用re模块的正则表达式从结果中获得所有网络链接的ip地址,保存至字典中,最后打印。要求每个ip

址必须具有相应的网络链接名说明,则从字符串‘IPv4地址’所在行的前几行中开始查找字符串‘适配器’的所在行文本

二、cmd命令ipconfig的返回值

下图为ipconfig的返回内容,可得到若要找到ip地址,则先找到字符串‘IPv4地址’所在行,然后利用正则表达式查找ip地

址,保存作为值,再从之前的几行中查找字符串‘适配器’的所在行文本,将该文本作为键。最后将所有结果保存为字

典。同理,由该思路也可获得所有网络连接的子网掩码、默认网关。运行环境:Python2.7.9

三、本机网络链接

先看看我的电脑中的所有网络链接如下,共有3个网络链接


四、代码

import re, os 

def get_ipconfig_ip(): 
    match_ip_dict = {}
    ipconfig_result_list = os.popen('ipconfig').readlines() #执行cmd命令ipconfig,并将结果存于ipconfig_result_list

    for i in range(0, len(ipconfig_result_list)): #逐行查找
        if  re.search(r'IPv4 地址' , ipconfig_result_list[i] ) != None:
            match_ip = re.search(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', ipconfig_result_list[i]).group(0)  #由正则表达式获取ip地址
            for j in range(3,7):
                if re.search(r"适配器" , ipconfig_result_list[i - j] ) != None:
                    match_ip_dict[ipconfig_result_list[i - j]] = match_ip
    return match_ip_dict

if __name__ == '__main__':   #主程序入口
    ip_dict = get_ipconfig_ip() #返回字典ip_dict保存ip地址信息
    for i in ip_dict:
        print('{} {}'.format(i[0:-1], ip_dict[i])) #字符串format函数,其中i[0:-1]除去键的最后'\n'

五、运行结果



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值