ipaddress库提供了处理IPv4与IPv6网络地址的类。这些类支持验证,查找网络上的地址和主机,以及其他常见的操作。

示例代码1:

import ipaddressx = ipaddress.ip_address("192.168.1.1")
print(x)y = ipaddress.ip_network("192.168.1.1")
print(y)

运行结果:

示例代码2:

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

运行结果:

示例代码3:

import ipaddressn = '192.168.1.0/24'
net = ipaddress.ip_network(n)
print(net)
ip = ipaddress.ip_address('192.168.1.255')
if ip in net:print("True")

运行结果:

地址

示例代码:

import ipaddress
import binasciiaddresses = ['12.33.3.51','192.168.1.1','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, "是否是专用地址:", address.is_private)print(address, "是否是公网地址:", address.is_global)print(address, "是否是多播地址:", address.is_multicast)print(address, "是否是环回地址:", address.is_loopback)print(address, "是否是link-local保留:", address.is_link_local)print(address, "判断地址是否未指定:", address.is_unspecified)print(address, "IP地址16进制:", binascii.hexlify(address.packed))

运行结果:

网络

示例代码:

import ipaddressaddresses = ['192.168.1.0/24','2001:0db8:3c4d:0015::/64'
]for n in addresses:net = ipaddress.ip_network(n)print(net, "是否是专用地址:", net.is_private)print(net, "该网段的广播地址:", net.broadcast_address)print(net, "IP地址与子网掩码:", net.compressed)print(net, "掩码以二进制的格式展示:", net.with_netmask)print(net, "以主机掩码格式展示:", net.with_hostmask)print(net, "网络中的地址总数:", net.num_addresses)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)print()

运行结果:

应用案例

1. 检查ip的有效性:

示例代码:

import ipaddress# 检查ip的有效性
def check_valid_ip(ip):try:ipaddress.ip_address(ip.strip())return Trueexcept Exception as e:print(e)return Falseif __name__ == '__main__':ips = ['192.168.1.1', '192.168.1.366', '10.25.1.36']for ip in ips:res = check_valid_ip(ip)if res:print(ip, res)else:print(ip, res)

运行结果:

2.判断IP是内网还是外网

示例代码:

import ipaddress# 判断ip是内网还是外网
def check_ip_is_internet(ip):try:return ipaddress.ip_address(ip.strip()).is_privateexcept Exception as e:print(e)return Falseif __name__ == '__main__':ips = ['192.168.1.1', '192.168.1.366', '10.25.1.36']for ip in ips:res = check_ip_is_internet(ip)if res:print(ip, res)else:print(ip, res)

运行结果:

参考博文:

python3 判断ip有效性 是否是内网ip_whatday的博客-CSDN博客_python 判断内网ip

python中ipaddress库用法详解相关推荐

  1. python中os库用法详解(总结)

    os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能. 具体步骤如下: 1. 导⼊os模块 import os 2. 使⽤ os 模块相关功能 os.函 ...

  2. python中dns库用法详解(DNS处理模块)

    dnspython是python 实现的一个dns场景的工具包. dnspython(http://www.dnspython.org/)是Python实现的一个DNS工具包,它支持几乎所有的记录类型 ...

  3. python中flask_caching库用法详解(缓存)

    为了尽量减少缓存穿透,并同时减少web的响应时间,可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从数据库中 ...

  4. python中openpyxl库用法详解

    openpyxl模块是一个读写Excel 文档的Python库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档. openpyxl.load_workbook(地址) - 打开 ...

  5. python中cpca库用法详解(从文本中提取省市区)

    一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块. 首先安装cpca库: pip install cpca Github: GitHub - DQinYuan/c ...

  6. python中IPy库用法详解

    使用python遍历所有的ip,可以借助第三方库IPy来获取所有的ip. 安装IPy库: pip install IPy 1.遍历IP网段中所有IP并打印个数 示例代码1: import IPydef ...

  7. python中gzip库用法详解(压缩和解压缩)

    1.使用gzip创建一个文件: 示例代码: import gzip# 创建一个gzip文件 content = "Hello world!" f = gzip.open('file ...

  8. python中ipaddr库用法详解

    首先安装ipaddr库 pip install ipaddr 判断一个IP地址是否在某个网段内: import ipaddrip = ipaddr.IPv4Address("192.168. ...

  9. python中zlib库用法详解(压缩与解压缩)

    zlib主要用于压缩与解压缩 字符串:使用zlib.compress可以压缩字符串.使用zlib.decompress可以解压字符串. 数据流:压缩:compressobj,解压:decompress ...

最新文章

  1. python打印换行符_Python换行符以及如何在不使用换行符的情况下进行Python打印
  2. linux tcp keepalive,[20170504]Linux TCP keepalive timers.txt
  3. 【C语言项目】贪吃蛇游戏(下)
  4. 如何快速部署一个Elasticsearch集群?
  5. vue复选框默认被选中_vue .js绑定checkbox并获取、改变选中状态的实例
  6. #if、#if defined 的使用
  7. python 优先队列_Python Queue队列实现线程通信
  8. python免费教程视频-微软推出 Python 免费在线教程视频
  9. html标签元素分类
  10. hbase 查询某列_hbase shell使用STARTROW、ENDROW、FILTER查出指定的列
  11. 联想YOGA 13笔记本电源适配器修理
  12. win8系统用友U8服务器的设置,用友u8服务器参数配置
  13. cocoa touch框架
  14. 2018 苹果开发者账号注册、付款流程图解
  15. 计算机网络通信的媒体介质,计算机网络基础:常见的网络传输介质
  16. anaconda利用pip安装module
  17. Access Token机制简单介绍
  18. 谱减法语音降噪的Python实现
  19. c语言编程队名,比赛团队队名及口号
  20. 杭电考研计算机多少分及格,2020考研:杭电计算机好考吗?分数线是多少?

热门文章

  1. 如何生成公众号带参数二维码
  2. win10恢复经典开始菜单_Win10 10月更新发布!全新开始菜单来了,这次你敢更新吗...
  3. springboot项目部署 + vue项目部署
  4. Pytorch入门笔记(一)
  5. 程序员——相忘于江湖
  6. 论文投稿指南——中国(中文EI)期刊推荐(第4期)
  7. php控制舵机,分享一个关于SG90舵机的实验(+串口控制)
  8. Android 9.0系统源码_SystemUI(二)StatusBar系统状态栏的创建流程
  9. 顺序存储二叉树和线索化二叉树
  10. python游戏源码——2绘画简易坦克