最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python獲取linux和windows系統(tǒng)指定接口的IP地址的步驟及代碼

 更新時(shí)間:2021年05月10日 09:10:11   作者:格洛米愛(ài)學(xué)習(xí)  
這篇文章主要介紹了python獲取linux和windows系統(tǒng)指定接口的IP地址,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

實(shí)驗(yàn)?zāi)康模?/h3>

用戶輸入網(wǎng)卡名稱,通過(guò)函數(shù)返回對(duì)應(yīng)的IPv4和IPv6地址。

實(shí)驗(yàn)代碼:

步驟一: 由于window系統(tǒng)下網(wǎng)卡名稱并不是真正的名字,而真正的ID在注冊(cè)表SYSTEM\CurrentControlSet\Control\Network{4d36e972-e325-11ce-bfc1-08002be10318}目錄下。所以需要通過(guò)如下代碼,返回接口名稱和唯一ID的對(duì)應(yīng)關(guān)系。

在這里插入圖片描述

win_ifname.py:

import netifaces as ni
# import winreg as wr

# 將windows下的接口的名稱和唯一ID一一對(duì)應(yīng)存入字典并返回
def get_connection_name_from_guid(iface_guids):  
    wr = __import__('winreg', globals(), locals(), ['wr'])
    iface_dict = {}
    reg = wr.ConnectRegistry(None, wr.HKEY_LOCAL_MACHINE)
    reg_key = wr.OpenKey(reg, r'SYSTEM\CurrentControlSet\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}')

    for i in iface_guids:
        try:
            reg_subkey = wr.OpenKey(reg_key, i + r'\Connection')
            iface_dict[wr.QueryValueEx(reg_subkey, 'Name')[0]] = i
        except FileNotFoundError:
            pass
    return iface_dict

 # 根據(jù)輸入的接口名稱,返回唯一ID
def win_from_name_get_id(ifname): 
    x = ni.interfaces()
    return get_connection_name_from_guid(x).get(ifname)


if __name__ == '__main__':
    import platform

    if platform.system() == "Windows":
        print(win_from_name_get_id("WLAN"))

運(yùn)行結(jié)果:

在這里插入圖片描述

可以看到獲取WLAN接口的ID和注冊(cè)表中查看的一致。

步驟二: 通過(guò)接口名稱(linux)或者接口ID(windows)找到IPv4和IPv6地址。

from netifaces import ifaddresses, AF_INET, AF_INET6
import platform

# 獲取接口IPv4地址
def get_ip_address(ifname):
    if platform.system() == "Linux":
        try:
        	# AF_INET表示的是IPv4地址(AF_LINK則表示的是MAC地址)
            return ifaddresses(ifname)[AF_INET][0]['addr']
        except ValueError:
            return None
    elif platform.system() == "Windows":
    	# 需要首先調(diào)用win_from_name_get_id函數(shù),獲取接口的ID
        from win_ifname import win_from_name_get_id
        if_id = win_from_name_get_id(ifname)
        if not if_id:
            return
        else:
            return ifaddresses(if_id)[AF_INET][0]['addr']
    else:
        print('操作系統(tǒng)不支持,本腳本只能工作在Windows或者Linux環(huán)境!')

# 獲取接口IPv6地址,和IPv4同理
def get_ipv6_address(ifname):
    if platform.system() == "Linux":
        try:
            return ifaddresses(ifname)[AF_INET6][0]['addr']
        except ValueError:
            return None
    elif platform.system() == "Windows":
        from win_ifname import win_from_name_get_id
        if_id = win_from_name_get_id(ifname)
        if not if_id:
            return
        else:
            # 此處依然要提供WIN的網(wǎng)卡ID, 而不是名字
            return ifaddresses(if_id)[AF_INET6][0]['addr']
    else:
        print('操作系統(tǒng)不支持,本腳本只能工作在Windows或者Linux環(huán)境!')


if __name__ == "__main__":
    if platform.system() == "Linux":
        print(get_ip_address('ens33'))
        print(get_ipv6_address('ens33'))
    elif platform.system() == "Windows":
        print(get_ip_address('WLAN'))
        print(get_ipv6_address('WLAN'))

測(cè)試結(jié)果:
windows平臺(tái)下:

在這里插入圖片描述

Linux平臺(tái)下:

在這里插入圖片描述

到此這篇關(guān)于python獲取linux和windows系統(tǒng)指定接口的IP地址的文章就介紹到這了,更多相關(guān)python獲取接口ip地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中format格式化的用法及說(shuō)明

    Python中format格式化的用法及說(shuō)明

    這篇文章主要介紹了Python中format格式化的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 如何基于python實(shí)現(xiàn)畫(huà)不同品種的櫻花樹(shù)

    如何基于python實(shí)現(xiàn)畫(huà)不同品種的櫻花樹(shù)

    這篇文章主要介紹了如何基于python實(shí)現(xiàn)畫(huà)不同品種的櫻花樹(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python3的UnicodeDecodeError解決方法

    python3的UnicodeDecodeError解決方法

    這篇文章主要介紹了python3的UnicodeDecodeError解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python win32com 操作Exce的l簡(jiǎn)單方法(必看)

    Python win32com 操作Exce的l簡(jiǎn)單方法(必看)

    下面小編就為大家?guī)?lái)一篇Python win32com 操作Exce的l簡(jiǎn)單方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • python?plotly設(shè)置go.Scatter為實(shí)線實(shí)例

    python?plotly設(shè)置go.Scatter為實(shí)線實(shí)例

    這篇文章主要為大家介紹了python?plotly設(shè)置go.Scatter為實(shí)線線條的樣式實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)

    WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)

    這篇文章主要介紹了WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python獲取時(shí)間戳代碼實(shí)例

    Python獲取時(shí)間戳代碼實(shí)例

    這篇文章主要介紹了Python獲取時(shí)間戳代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 詳解Python中 sys.argv[]的用法簡(jiǎn)明解釋

    詳解Python中 sys.argv[]的用法簡(jiǎn)明解釋

    本篇文章主要介紹了詳解Python中 sys.argv[]的用法簡(jiǎn)明解釋,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • django與vue的完美結(jié)合_實(shí)現(xiàn)前后端的分離開(kāi)發(fā)之后在整合的方法

    django與vue的完美結(jié)合_實(shí)現(xiàn)前后端的分離開(kāi)發(fā)之后在整合的方法

    今天小編就為大家分享一篇django與vue的完美結(jié)合_實(shí)現(xiàn)前后端的分離開(kāi)發(fā)之后在整合的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python詞云的正確實(shí)現(xiàn)方法實(shí)例

    Python詞云的正確實(shí)現(xiàn)方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python詞云的正確實(shí)現(xiàn)方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評(píng)論

厦门市| 宜阳县| 营山县| 成武县| 三都| 宁乡县| 攀枝花市| 德庆县| 武威市| 北票市| 湘乡市| 玉田县| 台安县| 新龙县| 沙湾县| 华蓥市| 开远市| 福建省| 错那县| 康平县| 北安市| 西畴县| 扎兰屯市| 策勒县| 旌德县| 镇赉县| 凉山| 长治县| 长兴县| 姜堰市| 舟山市| 桑植县| 广州市| 定南县| 荆门市| 沈阳市| 新田县| 外汇| 东港市| 扶绥县| 商都县|