亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

瀏覽:2日期:2022-06-17 11:54:39
目錄前言地址網(wǎng)絡(luò)打印網(wǎng)絡(luò)地址有多少I(mǎi)P可用接口前言

ipaddress庫(kù)提供了處理IPv4與IPv6網(wǎng)絡(luò)地址的類(lèi)。這些類(lèi)支持驗(yàn)證,查找網(wǎng)絡(luò)上的地址和主機(jī),以及其他常見(jiàn)的操作。

本篇,將詳細(xì)介紹Python中ipaddress庫(kù)的使用規(guī)則。(內(nèi)容涉及很多計(jì)算機(jī)網(wǎng)絡(luò)知識(shí),如果不懂,可以參考書(shū)籍《計(jì)算機(jī)網(wǎng)絡(luò)》)

地址

一般來(lái)說(shuō),我們使用ipaddress庫(kù)是通過(guò)ip_address()函數(shù)構(gòu)建一個(gè)地址對(duì)象。它會(huì)返回一個(gè)IPv4Address或IPv6Address實(shí)例。實(shí)例如下:

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('是否是專(zhuān)用地址:', address.is_private) print('是否是公網(wǎng)地址:', address.is_global) print('是否是多播地址:', address.is_multicast) print('是否是環(huán)回地址:', address.is_loopback) print('是否是link-local保留:', address.is_link_local) print('判斷地址是否未指定:', address.is_unspecified) print('IP地址16進(jìn)制:', binascii.hexlify(address.packed))

運(yùn)行之后,效果如下:

Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

網(wǎng)絡(luò)

網(wǎng)絡(luò)地址通常用一個(gè)基本地址和一個(gè)掩碼表示,掩碼指示地址的哪些部分表示網(wǎng)絡(luò),哪些部分表示該網(wǎng)絡(luò)上的地址。可以顯式的表示掩碼,也可以使用一個(gè)前綴長(zhǎng)度值來(lái)表示,示例如下:

import ipaddressaddresses = [ ’192.168.1.0/24’, ’2001:0db8:3c4d:0015::/64’]for n in addresses: net = ipaddress.ip_network(n) print('是否是專(zhuān)用地址:', net.is_private) print('該網(wǎng)段的廣播地址:', net.broadcast_address) print('IP地址與子網(wǎng)掩碼:', net.compressed) print('掩碼以二進(jìn)制的格式展示:', net.with_netmask) print('以主機(jī)掩碼格式展示:', net.with_hostmask) print('網(wǎng)絡(luò)中的地址總數(shù):', net.num_addresses) print()

運(yùn)行之后,效果如下:

Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

涉及IP地址與子網(wǎng)掩碼以及廣播地址等知識(shí),讀者可以參考《計(jì)算機(jī)網(wǎng)絡(luò)》。

打印網(wǎng)絡(luò)地址有多少I(mǎi)P可用

在IPv4的網(wǎng)絡(luò)地址中,我們一般將其分為A,B,C類(lèi),上面我們提供的192.168.1.0是一個(gè)C類(lèi)地址。學(xué)過(guò)網(wǎng)絡(luò)的應(yīng)該一眼就可以看出來(lái)其主機(jī)地址有254個(gè),基地址為192.168.1.0,而廣播地址為192.168.1.255。整體是256個(gè)。

因?yàn)檫@是C類(lèi)地址,數(shù)學(xué)稍微好點(diǎn)的肯定手到擒來(lái),但是我給你一個(gè)IPv6或者IPv4的A類(lèi)地址,能口算出來(lái)多少的恐怕很少吧,而ipaddress庫(kù)可以直接遍歷打印,示例如下:

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

運(yùn)行之后,效果如下:

Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

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

當(dāng)然,如果你只是想確定一個(gè)地址是否在網(wǎng)絡(luò)中,可以直接使用in進(jìn)行判斷。示例如下:

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('在里面')接口

網(wǎng)絡(luò)接口表示網(wǎng)絡(luò)上的一個(gè)特定地址,可以表示為一個(gè)主機(jī)地址和一個(gè)網(wǎng)絡(luò)前綴或網(wǎng)絡(luò)掩碼。示例如下:

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('網(wǎng)絡(luò)地址:', iface.network) print('ip地址:', iface.ip) print('字符串表示形式:', iface.with_prefixlen) print('二進(jìn)制表示掩碼:', iface.with_netmask) print('主機(jī)掩碼表示:', iface.with_hostmask)

運(yùn)行之后,效果如下:

Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理

到此這篇關(guān)于Python中實(shí)現(xiàn)ipaddress網(wǎng)絡(luò)地址的處理的文章就介紹到這了,更多相關(guān)Python ipaddress網(wǎng)絡(luò)地址 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲成人一区 | 大黄一级片 | 日韩欧美视频一区二区 | 五月色一区二区亚洲小说 | 日本a级毛片免费视频播放 日本a级三级三级三级久久 | 人摸人操 | 另类专区国产在线视频 | 欧美在线视频看看 | 九九热久久免费视频 | 国产农村乱| 国产精品毛片一区二区三区 | 国产制服 国产制服一区二区 | 国产精品免费大片一区二区 | 日韩亚洲一区中文字幕在线 | 日本在线网 | 国产三级手机在线 | 天堂色视频| 欧美成人亚洲综合精品欧美激情 | 亚洲精品第五页中文字幕 | 国产韩国精品一区二区三区 | 一区二区三区免费看 | 一级待一黄aaa大片在线还看 | 国产视频网站在线观看 | 中国一级毛片在线观看 | 99精品一区二区三区 | 日韩三级黄 | 欧美一区二区三区日韩免费播 | 91福利精品老师国产自产在线 | 亚洲综合国产一区在线 | 成人网18免费视频 | 色综合a怡红院怡红院首页 色综合精品久久久久久久 色综合九九 | 久久久精品久久视频只有精品 | 亚洲视频手机在线 | 成人久久久久 | aa级毛片毛片免费观看久 | 在线免费看黄色 | 国产一级毛片网站 | 窝窝女人体国产午夜视频 | 未成人做爰视频www 窝窝午夜精品一区二区 | 日日噜噜噜夜夜爽爽狠狠69 | 加勒比在线视频 |