婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python中實現ipaddress網絡地址的處理

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

熱門標簽:商家地圖標注海報 ai電銷機器人的優勢 海外網吧地圖標注注冊 騰訊地圖標注沒法顯示 打電話機器人營銷 聊城語音外呼系統 地圖標注自己和別人標注區別 孝感營銷電話機器人效果怎么樣 南陽打電話機器人

前言

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

本篇,將詳細介紹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))

運行之后,效果如下:

網絡

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

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()

運行之后,效果如下:

涉及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)

運行之后,效果如下:

這里遍歷迭代,列出了所有的地址。如果只列出可用的主機地址把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網絡地址 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python使用Flask框架獲取用戶IP地址的方法
  • Python正則表達式匹配ip地址實例
  • python實現查詢IP地址所在地
  • 詳解Python判定IP地址合法性的三種方法
  • python獲取本機所有IP地址的方法
  • Python實現根據IP地址和子網掩碼算出網段的方法
  • python將ip地址轉換成整數的方法
  • python獲取外網ip地址的方法總結
  • python獲取本機mac地址和ip地址的方法

標簽:撫州 迪慶 六盤水 南寧 牡丹江 聊城 楊凌 揚州

巨人網絡通訊聲明:本文標題《Python中實現ipaddress網絡地址的處理》,本文關鍵詞  Python,中,實現,ipaddress,網絡,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python中實現ipaddress網絡地址的處理》相關的同類信息!
  • 本頁收集關于Python中實現ipaddress網絡地址的處理的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 青州市| 乌兰察布市| 阜城县| 甘德县| 新密市| 晋江市| 淄博市| 襄城县| 靖宇县| 武城县| 综艺| 南江县| 吐鲁番市| 新绛县| 樟树市| 通海县| 龙岩市| 苏州市| 浏阳市| 娱乐| 抚顺县| 翁牛特旗| 和政县| 定结县| 西乌| 澄迈县| 鄱阳县| 焦作市| 沭阳县| 天长市| 南川市| 麟游县| 资中县| 舒城县| 通榆县| 沿河| 会东县| 大新县| 峨山| 普安县| 博客|