亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Python獲取網(wǎng)卡信息(名稱、MAC、IP、網(wǎng)關(guān)等)

original 2016-11-15 11:57:14 1241
abstrait:   “人生苦短,我用Python”。Python的高效有一部分是跟它豐富的模塊分不開的。Python有很多第三方模塊可以幫助我們完成一些事情,減少開發(fā)時(shí)間。Python pypi庫(kù)中一個(gè)模塊名字叫“netifaces”,使用C語言寫的一個(gè)第三方模塊??梢裕?nbsp;   1.獲取本機(jī)的所有網(wǎng)關(guān)    2.

   “人生苦短,我用Python”。Python的高效有一部分是跟它豐富的模塊分不開的。Python有很多第三方模塊可以幫助我們完成一些事情,減少開發(fā)時(shí)間。

Python pypi庫(kù)中一個(gè)模塊名字叫“netifaces”,使用C語言寫的一個(gè)第三方模塊??梢裕?/p>

    1.獲取本機(jī)的所有網(wǎng)關(guān)

    2.獲取本機(jī)所有的接口Interface(網(wǎng)卡NIC)

    3.獲取本機(jī)指定接口的詳細(xì)信息,包括IP地址、子網(wǎng)掩碼、廣播地址、MAC地址等

不過遺憾的是這個(gè)模塊的功能太有限以及會(huì)帶出一些令人困惑的信息,例如Windows系統(tǒng)上的子網(wǎng)掩碼可能不正確等。

PS:要想獲取公網(wǎng)地址,可以使用很多種API,例如:

    # Use 3rd party web-sites to get your IP   
    # Please note that I do not recommend following curl/wget method due to security reasons. You have been warned:    
    curl ifconfig.me    
    curl icanhazip.com    
    curl ipecho.net/plain    
    curl ifconfig.co    
    curl http://ip.chinaz.com/getip.aspx

運(yùn)行截圖如下:

wKioL1gpuyiQg_r1AAAg8NiIJgI696.png

wKioL1gpuyiQg_r1AAAg8NiIJgI696.png

代碼請(qǐng)移步到GitHub:https://github.com/DingGuodong/LinuxBashShellScriptForOps/blob/master/projects/WindowsSystemOps/Network/getNetworkStatus.py

代碼如下:

#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
"""
Created by PyCharm.
File:               LinuxBashShellScriptForOps:getNetworkStatus.py
User:               Guodong
Create Date:        2016/11/2
Create Time:        16:20
 
show Windows or Linux network Nic status, such as MAC address, Gateway, IP address, etc
 
# python getNetworkStatus.py
Routing Gateway:               10.6.28.254
Routing NIC Name:              eth0
Routing NIC MAC Address:       06:7f:12:00:00:15
Routing IP Address:            10.6.28.28
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)

最后:不要重復(fù)制造輪子。重復(fù)制造輪子對(duì)自己而言,雖然制造的過程是學(xué)習(xí)鞏固的過程,但重復(fù)制造輪子對(duì)別人沒有好處,人生苦短,別重復(fù)制造輪子,除非你制造的足夠好。

tag:python獲取MAC地址,python獲取網(wǎng)關(guān)地址,python獲取IP地址


Notes de version

Entrées populaires