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

2、创建地址对象——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)       # 转换为字节

3、定义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')

(2)常用查询和操作命令

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

  • 查看网络中独立地址个数:
>>>net.num_addresses256
  • 打印主机地址:
>>> 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
  • 获取网络掩码:
>>> net.netmask
IPv4Address('255.255.255.0')
  • 剔除部分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
  • 拆分网络段:
>>> list(net.subnets(new_prefix=25))[IPv4Network('192.168.1.0/25'), IPv4Network('192.168.1.128/25')]

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

  • 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
  • 比较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

python ipaddress模块使用相关推荐

  1. python ipaddress模块简介

    文章目录 原著 概述 创建Address/Network/Interface 1. IP地址 2. 网段地址 3. 主机接口(CIDR) Address/Network/Interface成员函数 获 ...

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

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

  3. python3 ipaddress模块 创建 检查 操作ip地址 简介

    目录 1.创建地址对象--ipaddress.ip_address()函数 2.定义ip网络--ipaddress.ip_network()函数 3.查看网络中独立地址个数 4.打印主机地址 5.获取 ...

  4. ipaddress 模块介绍

    ipaddress 模块介绍 在python 3.8文档 Python 常用指引中已经详细介绍了 ipaddress模块,此处为引用官方文档 创建 Address/Network/Interface ...

  5. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  6. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  7. 关于使用python logging模块的几点总结

    关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...

  8. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

  9. 转载: Python os 模块的功能以及子函数介绍

    原文链接: python之os模块 - 程序生(Codey) - 博客园 https://www.cnblogs.com/cxscode/p/8085326.html 一.Python OS模块介绍 ...

最新文章

  1. 15岁成杀人犯,监狱里学编程,37岁获释后年薪70万
  2. 使用links方式安装eclipse插件
  3. 【控制】《多无人机协同控制技术》周伟老师-第6章-基于预测控制的无人机编队运动控制策略
  4. matlab datetime时间处理、时间转换
  5. 菜鸟教程python3 mysql_MySQL 教程
  6. 编php矩阵求和,PHP二维数组如何求和?
  7. mac系统在云服务器地址,mac如何登陆云服务器地址
  8. react 子传参父_React 子组件向父组件传值的方法
  9. 赠你一只金色的眼 - 富集分析和表达数据可视化
  10. 【TensorFlow】TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法)
  11. YEARWEEK函数来得到本周的日期
  12. mysql使用substring_index达到splite功能
  13. hihocoder-1014 Trie树
  14. c 语言入门自学app,C语言入门学习软件
  15. 涨停前常见的K线形态
  16. 河北省计算机科学专业高校排名,河北省计算机类专业大学排名
  17. push msg php_php进程通信-消息队列
  18. 如何构建可出售的Pagewiz登陆页面模板
  19. sendcloud php,Sendcloud的x_smtpapi具体如何定义?
  20. navicat导入excel 日期格式处理

热门文章

  1. 泸州市的电子计算机学校名称,泸州市电子机械学校 学校图片简介
  2. 《孙悟空是个好员工》对《心经》的注解(摘抄)
  3. skype检测softice的解决办法
  4. Linux的安装install
  5. 基于Lucene、Servlet新闻搜索引擎——国科大信息检索导论(王斌)大作业
  6. 清除Windows安全中心保护历史记录
  7. 乐鑫 ESP RainMaker Demo
  8. 想提前躺平的程序员,这10个网站收好了!
  9. cocos creator上线appstore的脚印
  10. 以26个英文字母开头的编程语言