我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中实现ipaddress网络地址的处理

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中实现ipaddress网络地址的处理

目录
  • 前言
  • 地址
  • 网络
    • 打印网络地址有多少IP可用
  • 接口

    前言

    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网络地址 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python中实现ipaddress网络地址的处理

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Python中实现ipaddress网络地址的处理

    目录前言地址网络打印网络地址有多少IP可用接口前言 ipaddress库提供了处理IPv4与IPv6网络地址的类。这些类支持验证,查找网络上的地址和主机,以及其他常见的操作。 本篇,将详细介绍Python中ipaddress库的使用规则。(
    2022-06-02

    Python中如何处理ipaddress网络地址

    这篇文章主要为大家展示了“Python中如何处理ipaddress网络地址”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中如何处理ipaddress网络地址”这篇文章吧。地址一般来说
    2023-06-15

    NAT网络地址转换的3种实现方式

    NAT网络地址转换的3种实现方式:1、静态NAT(一对一)2、动态NAT(多对多)3、端口多路复用PAT(多对一) 1、静态配置(1)在内部局部和内部全局地址之间建立一对一的转换router(config)#ip nat inside so
    2023-01-31

    Android中实现下载URL地址的网络资源的实例分享

    通过URL来获取网络资源并下载资源简单实例:package com.android.xiong.urltest; import java.io.IOException; import java.io.InputStream; impo
    2022-06-06

    如何实现查看网关MAC地址的批处理文件

    这篇文章主要为大家展示了“如何实现查看网关MAC地址的批处理文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现查看网关MAC地址的批处理文件”这篇文章吧。示例@echo off set
    2023-06-09

    Python实现获取内网IP地址的方法总结

    这篇文章主要为大家详细介绍了五种利用Python语言实现获取内网IP地址的方法,文中的示例代码讲解详细,具有一定的参考价值,需要的可以了解一下
    2023-03-24

    Python HTTP请求的艺术:优雅地处理网络数据

    Python高阶技巧,优雅地处理HTTP请求,探究网络数据之美!
    Python HTTP请求的艺术:优雅地处理网络数据
    2024-02-23

    如何在Python中处理网络爬虫的问题

    如何在Python中处理网络爬虫的问题网络爬虫是获取互联网上信息的重要方式,而Python作为一种简单易用且功能强大的编程语言,被广泛用于网络爬虫开发。本文将介绍如何在Python中处理网络爬虫的问题,并提供具体的代码示例。一、网络爬虫的基
    2023-10-22

    如何在Python中处理网络安全的问题

    如何在Python中处理网络安全的问题随着互联网的普及和发展,网络安全问题日益突出。对于程序员而言,在开发过程中要时刻关注网络安全,防止黑客攻击和数据泄露。Python作为一种高级编程语言,具有强大的网络编程功能,提供了丰富的库和模块来处理
    2023-10-22

    实例讲解Python中SocketServer模块处理网络请求的用法

    SocketServer创建一个网络服务框架。它定义了类来处理TCP,UDP, UNIX streams 和UNIX datagrams上的同步网络请求。 一、Server Types 有五个不同的服务器类在SocketServer中。 1
    2022-06-04

    用asp自动解析网页中的图片地址284567处理办法

    用asp自动解析网页中的图片地址284567处理办法
    2023-05-20

    用asp自动解析网页中的图片地址284455处理办法

    用asp自动解析网页中的图片地址284455处理办法
    2023-05-20

    python包中的urllib网络请求怎么实现

    这篇文章主要讲解了“python包中的urllib网络请求怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python包中的urllib网络请求怎么实现”吧!一、简介是一个 pytho
    2023-06-30

    如何实现显示网络配置的批处理文件

    这篇文章主要介绍如何实现显示网络配置的批处理文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!显示网络配置.bat代码如下:@echo off :: 代码编写:3742668 代码修订:namejm www.cn-d
    2023-06-09

    用asp自动解析网页中的图片地址284587实现方法

    用asp自动解析网页中的图片地址284587实现方法
    2023-05-20

    如何在PostgreSQL中实现图形数据处理和网络分析

    在PostgreSQL中实现图形数据处理和网络分析可以通过以下方式:使用PostGIS扩展:PostGIS是一个在PostgreSQL中处理空间数据(如点、线、多边形等)的扩展,可以用来进行地理信息系统(GIS)分析。通过PostGIS,你
    如何在PostgreSQL中实现图形数据处理和网络分析
    2024-04-09

    Python中pyecharts如何实现地理图表的绘制

    小编给大家分享一下Python中pyecharts如何实现地理图表的绘制,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、例子:百度迁徙百度地图春节人口迁徙大数据
    2023-06-15

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录