python之netifaces模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之netifaces模块相关的知识,希望对你有一定的参考价值。

#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
"""
Create Date:        2016/12/26
Create Time:        17:53
show Windows or Linux network Nic status, such as MAC address, Gateway, IP address, etc
# python getNetworkStatus.py
Routing Gateway:               10.0.0.1            
Routing NIC Name:              enp3s0              
Routing NIC MAC Address:       10:c3:7b:61:22:02   
Routing IP Address:            10.0.0.194          
Routing IP Netmask:            255.255.255.0  
 """
import os
import sys

try:
    import netifaces
except ImportError:
    try:
        command_to_execute = "pip install netifaces || easy_install netifaces"
        os.system(command_to_execute)
    except OSError:
        print "Can NOT install netifaces, Aborted!"
        sys.exit(1)
    import netifaces

routingGateway = netifaces.gateways()[‘default‘][netifaces.AF_INET][0]
routingNicName = netifaces.gateways()[‘default‘][netifaces.AF_INET][1]

for interface in netifaces.interfaces():
    if interface == routingNicName:
        # print netifaces.ifaddresses(interface)
        routingNicMacAddr = netifaces.ifaddresses(interface)[netifaces.AF_LINK][0][‘addr‘]
        try:
            routingIPAddr = netifaces.ifaddresses(interface)[netifaces.AF_INET][0][‘addr‘]
            # TODO(Guodong Ding) Note: On Windows, netmask maybe give a wrong result in ‘netifaces‘ module.
            routingIPNetmask = netifaces.ifaddresses(interface)[netifaces.AF_INET][0][‘netmask‘]
        except KeyError:
            pass

display_format = ‘%-30s %-20s‘
print display_format % ("Routing Gateway:", routingGateway)
print display_format % ("Routing NIC Name:", routingNicName)
print display_format % ("Routing NIC MAC Address:", routingNicMacAddr)
print display_format % ("Routing IP Address:", routingIPAddr)
print display_format % ("Routing IP Netmask:", routingIPNetmask)
windows执行的Routing NIC Name可能会出现C20B1496-F5CA-4670-A4FB-之类
https://pypi.python.org/pypi/netifaces
用法


本文出自 “禅剑一如” 博客,请务必保留此出处http://yanconggod.blog.51cto.com/1351649/1886289

以上是关于python之netifaces模块的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 python2.7 的 netifaces 模块安装?

Python netifaces模块windows安装

Python netifaces给出了两个地址

linux通过Python获取本机的ip,mac,网关,子网掩码,网卡名

一丶Python模块之getpass模块

python基础之模块之os模块