91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何處理ipaddress網絡地址

發布時間:2021-06-07 14:42:45 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Python中如何處理ipaddress網絡地址”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python中如何處理ipaddress網絡地址”這篇文章吧。

地址

一般來說,我們使用ipaddress庫是通過ip_address()函數構建一個地址對象。它會返回一個IPv4Address或IPv6Address實例。實例如下:

import ipaddress
import binascii

addresses = [
    '121.63.3.59',
    '2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b'
]

for ip in addresses:
    address = ipaddress.ip_address(ip)
    print("IP地址:", address)
    print("IP Version:", address.version)
    print("是否是專用地址:", address.is_private)
    print("是否是公網地址:", address.is_global)
    print("是否是多播地址:", address.is_multicast)
    print("是否是環回地址:", address.is_loopback)
    print("是否是link-local保留:", address.is_link_local)
    print("判斷地址是否未指定:", address.is_unspecified)
    print("IP地址16進制:", binascii.hexlify(address.packed))

運行之后,效果如下:

Python中如何處理ipaddress網絡地址

網絡

網絡地址通常用一個基本地址和一個掩碼表示,掩碼指示地址的哪些部分表示網絡,哪些部分表示該網絡上的地址。可以顯式的表示掩碼,也可以使用一個前綴長度值來表示,示例如下:

import ipaddress

addresses = [
    '192.168.1.0/24',
    '2001:0db8:3c4d:0015::/64'
]

for n in addresses:
    net = ipaddress.ip_network(n)
    print("是否是專用地址:", net.is_private)
    print("該網段的廣播地址:", net.broadcast_address)
    print("IP地址與子網掩碼:", net.compressed)
    print("掩碼以二進制的格式展示:", net.with_netmask)
    print("以主機掩碼格式展示:", net.with_hostmask)
    print("網絡中的地址總數:", net.num_addresses)
    print()

運行之后,效果如下:

Python中如何處理ipaddress網絡地址

涉及IP地址與子網掩碼以及廣播地址等知識,讀者可以參考《計算機網絡》。

打印網絡地址有多少IP可用

在IPv4的網絡地址中,我們一般將其分為A,B,C類,上面我們提供的192.168.1.0是一個C類地址。學過網絡的應該一眼就可以看出來其主機地址有254個,基地址為192.168.1.0,而廣播地址為192.168.1.255。整體是256個。

因為這是C類地址,數學稍微好點的肯定手到擒來,但是我給你一個IPv6或者IPv4的A類地址,能口算出來多少的恐怕很少吧,而ipaddress庫可以直接遍歷打印,示例如下:

import ipaddress

n = '192.168.1.0/24'
net = ipaddress.ip_network(n)
for ip in zip(net):
    print(ip)

運行之后,效果如下:

Python中如何處理ipaddress網絡地址

這里遍歷迭代,列出了所有的地址。如果只列出可用的主機地址把zip(net)改為zip(net.hosts())即可(也就是去除了廣播地址與基地址的其他地址)。

當然,如果你只是想確定一個地址是否在網絡中,可以直接使用in進行判斷。示例如下:

import ipaddress

n = '192.168.1.0/24'
net = ipaddress.ip_network(n)
ip=ipaddress.ip_address('192.168.1.233')
if ip in net:
    print("在里面")

接口

網絡接口表示網絡上的一個特定地址,可以表示為一個主機地址和一個網絡前綴或網絡掩碼。示例如下:

import ipaddress

addresses = [
    '192.168.1.251/24',
    '2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b/64'
]

for ip in addresses:
    iface = ipaddress.ip_interface(ip)
    print(iface)
    print("網絡地址:", iface.network)
    print("ip地址:", iface.ip)
    print("字符串表示形式:", iface.with_prefixlen)
    print("二進制表示掩碼:", iface.with_netmask)
    print("主機掩碼表示:", iface.with_hostmask)

運行之后,效果如下:

Python中如何處理ipaddress網絡地址

以上是“Python中如何處理ipaddress網絡地址”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻乌县| 安陆市| 喀什市| 通化市| 崇义县| 青海省| 枝江市| 迭部县| 临清市| 哈巴河县| 南雄市| 湟中县| 七台河市| 绵阳市| 永寿县| 托克托县| 巴南区| 恭城| 平武县| 永平县| 永寿县| 水富县| 临邑县| 五河县| 二连浩特市| 茶陵县| 从化市| 公主岭市| 额尔古纳市| 信阳市| 芮城县| 紫阳县| 武穴市| 肃南| 岳普湖县| 景宁| 古丈县| 宜兰市| 汤原县| 皮山县| 麦盖提县|