目录

1.创建地址对象——ipaddress.ip_address()函数

2.定义ip网络——ipaddress.ip_network()函数

3.查看网络中独立地址个数

4.打印主机地址

5.获取网络掩码

6.剔除部分ip段

7.拆分网络段

8.ip接口

9.比较ip地址


ipaddress模块作用——创建、检查和操作IP地址

1.创建地址对象——ipaddress.ip_address()函数

函数作用——根据传入值(整数(十进制/十六进制/八进制/二进制)或字符串)自动创建IPV4/IPV6地址,函数自动判断地址类别

>>>ipaddress.ip_address(1234)         #十进制
IPv4Address('0.0.4.210')>>>ipaddress.ip_address(0b101010101)  #二进制,低9位
IPv4Address('0.0.1.85')>>>ipaddress.ip_address('192.0.2.1')
IPv4Address('192.0.2.1')>>>print(ip.version)      # 打印IP版本号
>>>print(str(ip))         # 转换为字符串
>>>print(int(ip))         # 转换为十进制
>>>print(hex(int(ip)))    # 转换为十六进制
>>>print(bin(int(ip)))    # 转换为二进制
>>>print(oct(int(ip)))    # 转换为八进制
>>>print(ip.packed)       # 转换为字节

2.定义ip网络——ipaddress.ip_network()函数

(1)创建网络——使用格式为:ipaddress.ip_network('网络地址/掩码位数'),例如:

>>> a=list(ipaddress.ip_network('192.168.1.0/24'))
>>> print(a[15:25])[IPv4Address('192.168.1.15'), IPv4Address('192.168.1.16'), IPv4Address('192.168.1.17'), IPv4Address('192.168.1.18'), IPv4Address('192.168.1.19'), IPv4Address('192.168.1.20'), IPv4Address('192.168.1.21'), IPv4Address('192.168.1.22'), IPv4Address('192.168.1.23'), IPv4Address('192.168.1.24')]

默认情况下,如果入参中设置了主机位,如‘192.168.1.1/24’,则会弹出错误提示——设置了主机位:

>>> ipaddress.ip_network('192.168.1.1/24')Traceback (most recent call last):File "<pyshell#44>", line 1, in <module>ipaddress.ip_network('192.168.1.1/24')File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\ipaddress.py", line 74, in ip_networkreturn IPv4Network(address, strict)File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\ipaddress.py", line 1536, in __init__raise ValueError('%s has host bits set' % self)
ValueError: 192.168.1.1/24 has host bits set

可以通过设置strict=False实现附加位强制为0:

>>> ipaddress.ip_network('192.168.1.1/24',strict=False)
IPv4Network('192.168.1.0/24')

常用查询和操作命令

net=ipaddress.ip_network('192.168.1.0/24')

3.查看网络中独立地址个数

>>>net.num_addresses256

4.打印主机地址

>>> for x in net.hosts():print(x)  192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
...
192.168.1.252
192.168.1.253
192.168.1.254

5.获取网络掩码

>>> net.netmask
IPv4Address('255.255.255.0')

6.剔除部分ip段

>>> net2=ipaddress.ip_network('192.168.1.0/26')
>>> list(net.address_exclude(net2))[IPv4Network('192.168.1.128/25'), IPv4Network('192.168.1.64/26')]即:192.168.1.64192.168.1.65---192.168.1.127192.168.1.128---192.168.1.253192.168.1.254

7.拆分网络段

>>> list(net.subnets(new_prefix=25))[IPv4Network('192.168.1.0/25'), IPv4Network('192.168.1.128/25')]

即以25位子网掩码拆分net网络段,划分为两个网络段

8.ip接口

>>>ief = ipaddress.ip_interface('192.168.1.1/23')
>>>print(ief.ip) # 打印ip地址
192.168.1.1>>>print(ief.network) # 打印其所属网段
192.168.0.0/23>>>print(ief.with_netmask) # 以带子网掩码形式打印
192.168.1.1/255.255.254.0>>>print(ief.with_prefixlen) # 已有掩码个数(前缀)形式打印
192.168.1.1/23

9.比较ip地址

>>>print(ipaddress.ip_network('192.168.1.1/32').compare_networks(ipaddress.ip_network('192.168.1.2/32')))
-1
>>>print(ipaddress.ip_network('192.168.1.1/32').compare_networks(ipaddress.ip_network('192.168.1.1/32')))
0
>>>print(ipaddress.ip_network('192.168.1.1/32').compare_networks(ipaddress.ip_network('192.168.1.0/32')))
1

python3 ipaddress模块 创建 检查 操作ip地址 简介相关推荐

  1. python ipaddress模块_Python学习笔记-IP地址处理模块Ipy

    IP地址处理模块Ipy IPy模块可以很好的辅助我们高效完成IP的规划工作. 安装IPy模块[root@kurol ~]# python36 -m easy_install -i http://pyp ...

  2. python3 selenium模块Chrome设置代理ip的实现

    python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...

  3. 计算机运行命令查看电脑ip,如何用命令提示符检查网络IP地址是否运行?

    命令提示符是一项可以使用键盘输入命令来进行计算机控制,可以进行简单的人机交互 技术.在一些比较专业的电脑技巧中,往往需要用到命令提示符.今天我们介绍的是如何用命令提示符检查网络IP地址是否运行. 方法 ...

  4. 计算机网络基本知识(八):域名、IP地址简介及分类

    一.域名 1.域名的格式: • 计算机主机名.本地名.组名.最高层域名 例:www.hust.edu.cn 2.URL的格式: • 协议://主机.域名[:端口号]/路径/文件名 例:http://2 ...

  5. springcloud2.0以上版本_eureka控制台显示_找不到${spring.cloud.client.ipAddress}_没有显示成IP地址---springcloud工作笔记165

    eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/eureka.instance.prefer-ip-address= ...

  6. linux ip地址本地缓存,ip-address – 如何解析组织的IP地址(使用缓存)

    我想我找到了解决这个问题的更好方法.我错误地认为反向DNS是无用的:反向DNS比我知道的更多!例如,给定IP地址8.12.3.96,96.3.12.8.in-addr.arpa没有PTR记录: hos ...

  7. php qqwry.dat_php读取操作IP地址数据库文件QQWry.dat

    我们统计流量的时候需要可以获取用户ip,根据用户ip之后可以通过纯ip真数据库QQWry.dat,获取出用户IP 所在的地理位置,这样可以做出更有意义的统计信息. QQWry.dat请自行搜索下载. ...

  8. ip地址简介 ip地址取值0-255 最后一位也可以为0

    IPv4由32位二进制组成,平均分为4段,每段8位,中间用点隔开,用十进制表示,称为点分十进制.(每段的范围都是0-255) 一.IP地址和MAC地址 1.MAC地址 MAC(Media Access ...

  9. Python使用正则表达式检查合法IP地址

    全国高校教师Python课程高级研修班(线上,11月20-21日) 中国大学MOOC"Python程序设计基础"第5次开课 推荐图书: <Python可以这样学>,IS ...

最新文章

  1. Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for i
  2. Vim 用户的大脑变化
  3. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名
  4. .NET各版本一览表
  5. 此应用无法在你的电脑上运行_能直运行iOS应用!苹果新macOS翻车 正式版下载后无法安装...
  6. 斯坦福大学机器学习——高斯判别分析
  7. BioSPPy - Biosignal(生物信号处理库)
  8. 被阿里带火的数据中台,不靠这三个阶段绝对失败
  9. Javascript -- 精通String
  10. Sublime Text编写80×86汇编.asm文件的语法高亮插件
  11. 基于ASP.NETAJAX的WebPart开发与部署-转
  12. js无限分级 树_js实现无限级树形导航列表效果代码
  13. win32SDK的hello,world程序(二)
  14. 求链表是否有环,及环入口,环长度
  15. Maven学习—Nexus3私服搭建
  16. qt初体验(通信原理:消息码--AMI码--HDB3码低配可视化)
  17. 自动控制原理--卢京潮 2009(免费)课本完整
  18. Linux串口ttyUSB设置
  19. 支部谈心谈话工作怎么开展?_工作场所“激情”的谈话引发了读书俱乐部期间的热烈聊天
  20. 全栈工程师是什么,为什么需要全栈工程师?

热门文章

  1. mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充
  2. Tungsten Fabric SDN — DCI
  3. 互联网协议 — BGP 边界网关协议 — Route(路由信息)
  4. Kubernetes — kubectl 的基本使用
  5. Powershell 命令行泄漏下一个 Windows 10 更新内容
  6. Android 程序自动更新功能模块实现
  7. log4j在javaWeb项目中的使用
  8. 公众平台服务号、订阅号、企业号的相关说明
  9. [Silverlight入门系列]实现局部元素全屏(Element部分全屏)
  10. Centos升级php mysql