Python3 获取当前主机所有IPv4网络适配器

# !/usr/bin/python3
# coding: utf-8
import netifaces


def list_ipv4_adapter():
    mapping = {}
    gateways = netifaces.gateways()
    if netifaces.AF_INET in gateways:
        ipv4gates = gateways[netifaces.AF_INET]
        for gate in ipv4gates:
            mac = gate[1][1:-1]
            mapping[mac] = gate[0]

    ipv4list = []
    macs = netifaces.interfaces()
    for mac in macs:
        adapter = netifaces.ifaddresses(mac)
        if netifaces.AF_INET not in adapter:
            continue

        ipv4group = adapter[netifaces.AF_INET]
        if len(ipv4group) < 1:
            # IPv4 is not enabled or configured
            continue

        # len(ipv4group) > 1
        # One available network adapter is configured with multiple network segments

        mac = mac[1:-1]
        for ipv4 in ipv4group:
            ip = ipv4['addr']
            mask = ipv4['netmask']
            # `broadcast` may be the upper limit address of this network segment
            gate = mapping[mac] if mac in mapping else ipv4['broadcast']

            ipv4list.append((ip, mask, gate, mac))
    # [('127.0.0.1', '255.0.0.0', '127.255.255.255', 'DFCA0DEC-A7BA-11EB-A168-806E6F6E6963')]
    return ipv4list

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值