iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中实现ipaddress网络地址的处理
  • 820
分享到

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

Pythonip网络地址PythonIP地址处理Pythonipaddress网络地址 2022-06-02 22:06:37 820人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

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

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

    --结束END--

    本文标题: Python中实现ipaddress网络地址的处理

    本文链接: https://www.lsjlt.com/news/10875.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

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

    下载Word文档
    猜你喜欢
    • Python中如何处理ipaddress网络地址
      这篇文章主要为大家展示了“Python中如何处理ipaddress网络地址”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中如何处理ipaddress网络地址”这篇文章吧。地址一般来说...
      99+
      2023-06-15
    • NAT网络地址转换的3种实现方式
      NAT网络地址转换的3种实现方式: 1、静态NAT(一对一) 2、动态NAT(多对多) 3、端口多路复用PAT(多对一)   1、静态配置 (1)在内部局部和内部全局地...
      99+
      2023-01-31
      网络地址 方式 NAT
    • Ansible最佳实践之Playbook使用过滤器处理网络地址
      写在前面 使用过滤器检查、验证和操作包含网络信息的变量理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活...
      99+
      2023-09-03
      ansible php 开发语言
    • 如何实现查看网关MAC地址的批处理文件
      这篇文章主要为大家展示了“如何实现查看网关MAC地址的批处理文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现查看网关MAC地址的批处理文件”这篇文章吧。示例@echo off...
      99+
      2023-06-09
    • python实现局域网ip地址扫描
      python 遍历局域网ip 从知道python开始,我的视线里就没缺少过他。尤其是现如今开发语言大有傻瓜化的趋势。而作为这一趋势的领导,脚本语言就显得格外亮眼。不管是python还是ruby,perl,都火的不得了。就连java都出了个...
      99+
      2023-01-31
      局域网 地址 python
    • Python如何实现获取内网IP地址
      本文小编为大家详细介绍“Python如何实现获取内网IP地址”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现获取内网IP地址”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。方法一import&n...
      99+
      2023-07-05
    • Python实现获取内网IP地址的方法总结
      目录方法一方法二方法三(三方模块)方法四(Linux)方法五(windows)方法一 import socket def get_local_ip_address(): i...
      99+
      2023-03-24
      Python获取内网IP地址 Python获取IP地址 Python IP地址
    • Python HTTP请求的艺术:优雅地处理网络数据
      写在前面 Python是当下最为流行的编程语言之一,它在爬虫、自动化测试、数据分析等领域有着广泛的应用。HTTP请求是Web应用开发的基础,掌握HTTP请求的艺术可以帮助你更优雅地处理网络数据。 HTTP请求的基础知识 HTTP请求是一个...
      99+
      2024-02-23
      Python, HTTP, 网络数据, 爬虫
    • 用批处理脚本实现ip地址切换
      本篇内容主要讲解“用批处理脚本实现ip地址切换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用批处理脚本实现ip地址切换”吧!代码如下:@echo offrem # --------------...
      99+
      2023-06-08
    • pandas数据处理清洗实现中文地址拆分案例
      目录一、案例场景二、初步方案三、优化方案一、案例场景 字段login_place,一共267725行记录,随机15条记录如下:   后续数据分析工作需要用...
      99+
      2024-04-02
    • python区块链地址的简版实现
      说明 本文根据https://github.com/liuchengxu/blockchain-tutorial 的内容,用python实现的,但根据个人的理解进行了一些修改,大量引...
      99+
      2024-04-02
    • 计算机网络中C类地址的子网掩码是哪个
      这篇文章给大家分享的是有关计算机网络中C类地址的子网掩码是哪个的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C类地址的子网掩码是【255.255.255.0】。子网掩码也是由32位的二进制数组成,它定义了lP地址...
      99+
      2023-06-15
    • Java实现获取内网的所有IP地址
      目录题目描述代码详解效果展示题目描述 在进行网络编程时,有时需要对局域网的所有主机进行遍历,为此需要获得内网的所以IP地址 题目实现:获得内网的所有IP地址的小应用。 解题思路 创建...
      99+
      2024-04-02
    • 如何在Python中处理网络安全的问题
      如何在Python中处理网络安全的问题随着互联网的普及和发展,网络安全问题日益突出。对于程序员而言,在开发过程中要时刻关注网络安全,防止黑客攻击和数据泄露。Python作为一种高级编程语言,具有强大的网络编程功能,提供了丰富的库和模块来处理...
      99+
      2023-10-22
      网络安全 Python 处理
    • 如何在Python中处理网络爬虫的问题
      如何在Python中处理网络爬虫的问题网络爬虫是获取互联网上信息的重要方式,而Python作为一种简单易用且功能强大的编程语言,被广泛用于网络爬虫开发。本文将介绍如何在Python中处理网络爬虫的问题,并提供具体的代码示例。一、网络爬虫的基...
      99+
      2023-10-22
      Python 网络爬虫 处理问题
    • VC实现将网址解析出所有ip地址的实例代码
      通过调用gethostbyname 系统函数进行解析 void GetHostNamebyIp(char* hostName) { if(NULL == hostName) ...
      99+
      2024-04-02
    • 用asp自动解析网页中的图片地址284567处理办法
      一,取得原页中的图片的地址。 <%function PicStr(str) Set objRegExp = New Regexp '设置配置对象 objR...
      99+
      2023-05-20
      用asp自动解析网页中的图片地址
    • 如何理解Python LeNet网络及pytorch实现
      如何理解Python LeNet网络及pytorch实现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.LeNet介绍LeNet神经网络由深度学习三巨头之一的Yan...
      99+
      2023-06-21
    • 用asp自动解析网页中的图片地址284455处理办法
      一,取得原页中的图片的地址。 <%function PicStr(str) Set objRegExp = New Regexp '设置配置对象 objR...
      99+
      2023-05-20
      用asp自动解析网页中的图片地址
    • python包中的urllib网络请求怎么实现
      这篇文章主要讲解了“python包中的urllib网络请求怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python包中的urllib网络请求怎么实现”吧!一、简介是一个 pytho...
      99+
      2023-06-30
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作