av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

Python中實現ipaddress網絡地址的處理

瀏覽:9日期:2022-06-17 11:54:39
目錄前言地址網絡打印網絡地址有多少IP可用接口前言

ipaddress庫提供了處理IPv4與IPv6網絡地址的類。這些類支持驗證,查找網絡上的地址和主機,以及其他常見的操作。

本篇,將詳細介紹Python中ipaddress庫的使用規則。(內容涉及很多計算機網絡知識,如果不懂,可以參考書籍《計算機網絡》)

地址

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

import ipaddressimport binasciiaddresses = [ ’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 ipaddressaddresses = [ ’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 ipaddressn = ’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 ipaddressn = ’192.168.1.0/24’net = ipaddress.ip_network(n)ip=ipaddress.ip_address(’192.168.1.233’)if ip in net: print('在里面')接口

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

import ipaddressaddresses = [ ’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網絡地址的處理的文章就介紹到這了,更多相關Python ipaddress網絡地址 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产欧美精品一区二区三区 | 成人91视频 | japanese极品丰满少妇 | 国产高清视频在线播放 | 欧美激情视频在线 | www.四虎.com | 黄色精品视频 | 国产亚洲欧美一区二区 | 一级片在线视频 | 日韩三级久久 | 国产精品黄 | av免费观看在线 | 免费国产视频 | av一区二区三区 | 国产精品久久久久久久免费看 | 一道本在线| 免费毛片在线 | 成年人视频在线免费观看 | 成人一级毛片 | 一级国产片 | 久久久久黄色 | 亚洲男人av | 欧美一区在线视频 | 波多野结衣乳巨码无在线观看 | 国产第一福利 | 久久机热这里只有精品 | 天天射天天舔 | 天天干天天摸 | 国产成人精品一区二区 | 一区二区三区四区在线播放 | 中国女人真人一级毛片 | 韩日在线视频 | 深夜福利视频网站 | 久久香蕉网 | 亚洲福利在线观看 | 在线观看的av网站 | 日韩视频一区二区三区 | 欧美大白屁股 | 性色av一区二区 | 日本不卡免费 | 成人观看视频 |