安装

使用

1、显示IP类型

IP('192.168.1.1').version()

4

IP('::1').version()

6

类似如上所示,通过version方法可以的判断输入的IP是IPv4还是IPv6 。

2、网段计算输出

代码:

from IPy import IP

ip=IP('192.168.0.0/28')

print ip.len()

for x in ip:

print x

print ip.strNormal(0)

print ip.strNormal(1)

print ip.strNormal(2)

print ip.strNormal(3)

len()方法可以计算网段的IP个数。

strNormal()方法指定不同wantprefixlen参数可以定制不同类型的输出。上面输出类似如下:

16

192.168.0.0

192.168.0.1

192.168.0.2

192.168.0.3

......

192.168.0.15

192.168.0.0

192.168.0.0/28

192.168.0.0/255.255.255.240

192.168.0.0-192.168.0.15

3、格式转换

实例介绍几个常用方法,包括方向解析名称、IP类型、IP进制转换、网络地址网段地址转换。

ip=IP('192.168.0.1')

print ip.reverseNames() #反向解析地址格式

print ip.iptype() #显示IP地址类型,私有还是公有

ip=IP('8.8.8.8')

print ip.iptype()

print ip.int() #转换成整型格式

print ip.strHex() #转换成十六进制格式

print ip.strBin() #转换成二进制格式

网络地址、网段地址格式转换

print (IP('192.168.1.0').make_net('255.255.255.0'))

print (IP('192.168.1.0/255.255.255.0',make_net=True))

print (IP('192.168.1.0-192.168.1.255',make_net=True))

4、地址比较

判断IP地址和网段是否包含于另一个网段中,如下:

'192.168.1.1' in IP('192.168.1.0/24')

True

IP('192.168.1.0/24') in IP('192.168.0.0/16')

True

判断两个网段是否存在重叠,如下:

IP('192.168.0.0/23').overlaps('192.168.1.0/24')

1

IP('192.168.1.0/24').overlaps('192.168.2.0')

0

其中1表示存在重叠,0表示不存在重叠。

举例

代码:

coding:utf-8

from IPy import IP

ip_s=raw_input("please input an IP or net-range: ")

ips=IP(ip_s)

if len(ips)>1: #网络地址

print('net: %s' % ips.net())

print('netmask: %s' % ips.netmask())

print('broadcast: %s' % ips.broadcast())

print('reverse address: %s' % ips.reverseNames()[0])

print('subnet: %s' % len(ips))

else: #单个地址

print('reverse address: %s' % ips.reverseNames()[0])

print('hexadecimal: %s' % ips.strHex())

print('binary: %s' % ips.strBin())

print('iptype: %s' % ips.iptype())

运行结果:

C:\Users\admin\workspace\zhangnq>python IPy_test2.py

please input an IP or net-range: 192.168.1.1

reverse address: 1.1.168.192.in-addr.arpa.

hexadecimal: 0xc0a80101

binary: 11000000101010000000000100000001

iptype: PRIVATE

C:\Users\admin\workspace\zhangnq>python IPy_test2.py

please input an IP or net-range: 8.8.8.8

reverse address: 8.8.8.8.in-addr.arpa.

hexadecimal: 0x8080808

binary: 00001000000010000000100000001000

iptype: PUBLIC

C:\Users\admin\workspace\zhangnq>python IPy_test2.py

please input an IP or net-range: 192.168.1.0/28

net: 192.168.1.0

netmask: 255.255.255.240

broadcast: 192.168.1.15

reverse address: 0.1.168.192.in-addr.arpa.

subnet: 16

hexadecimal: 0xc0a80100

binary: 11000000101010000000000100000000

iptype: PRIVATE

ipy模块用法

一个自动识别IP地址、子网、方向解析、IP类型等信息的脚本

!/usr/bin/env python

-- coding: utf-8 --

def ip():

try:

from IPy import IP ###加载模块

ip_s = raw_input('请输入IP地址或者网段地址:' )###输入一个IP地址或者网段

ips = IP(ip_s) #定义元素

if len(ips) > 1: #如果len出来的数字大于1,那么就是一个网段

print('网络地址: %s' % ips.net())

print('子网掩码: %s' % ips.netmask())

print('网络广播地址: %s' % ips.reverseNames() [0])

print('网络子网数: %s' % len(ips))

else: ###否则就是一个地址

print('IP反向解析: %s' % ips.reverseNames() [0])

print('十六进制地址: %s' % ips.strHex())

print('二进制地址: %s' % ips.strBin())

print('地址类型: %s' % ips.iptype())

print time.strftime("%Y-%m-%d %H:%M:%S")

#code

except Exception, e:

logging.info("error:" + str(e) + "\n" + traceback.format_exc())

print traceback.format_exc()

finally:

pass

运行效果:

[root@mylinuxer python]# 192.168.1.0/24

-bash: 192.168.1.0/24: No such file or directory

[root@mylinuxer python]# python python.py

请输入IP地址或者网段地址: 192.168.1.0/24

网络地址: 192.168.1.0

子网掩码: 255.255.255.0

网络广播地址: 1.168.192.in-addr.arpa.

网络子网数: 256

[root@mylinuxer python]# python python.py

请输入IP地址或者网段地址: 192.168.1.1

IP反向解析: 1.1.168.192.in-addr.arpa.

十六进制地址: 0xc0a80101

二进制地址: 11000000101010000000000100000001

地址类型: PRIVATE

[root@mylinuxer python]# python python.py

请输入IP地址或者网段地址: 116.213.249.211

IP反向解析: 211.249.213.116.in-addr.arpa.

十六进制地址: 0x74d5f9d3

二进制地址: 01110100110101011111100111010011

地址类型: PUBLIC

python ip,Python IP处理模块IPy(转载)相关推荐

  1. python解析html用哪个模块_[转载]python模块学习---HTMLParser(解析HTML文档元素)

    HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. 使用时需要定义一个从类HTMLParser继承的类,重定义 ...

  2. python中IP处理模块IPy

    1.安装 pip install IPy 2.IP地址.网段的基本处理 >>> IP('10.0.0.1').version() 4 >>> IP('::1').v ...

  3. 一文掌握使用Python的IP处理模块IPy

    IPy是Python支持IP的各种操作第三方模块,需要pip安装后才能使用,安装方法: pip install IPy IPy支持的方法和属性: >>> dir(IPy) ['INT ...

  4. python笔记系列:IP地址处理模块IPy

    IP地址处理模块IPy wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificat ...

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

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

  6. python ip,Python中IP地址处理IPy模块的使用

    IPy模块可以很好的帮助我们完成IP的计算和规划.现在网上也有很多IP地址计算的网站,这个模块实现的功能和他们也差不多. 安装 先下载源码,地址:https://pypi.python.org/pyp ...

  7. python ipaddr_python之IP地址或IP段处理模块-ipaddr

    python处理IP和IP段的模块基本有两个:IPy与ipaddr IPy基本处理8位.16位.24位掩码的网段,其他的网段处理起来就会出现问题. ipaddr是google出的一个模块,很好的可以处 ...

  8. Python:判定IP地址合法性的三种方法

    IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1255).(02 ...

  9. python实现将ip段解析为单个ip

    文章目录 将ip段解析为单个ip 192.168.1.*样式的ip段分解 192.168.1-10.*样式的ip段进行分解 192.168.1.0-255样式的ip段进行分解 192.168.1.0/ ...

最新文章

  1. python调用exe程序 传入参数_关于使用c#调用python脚本文件,脚本文件需要传递参数...
  2. [剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]
  3. 算法工程师进化-基础理论
  4. P2604 [ZJOI2010]网络扩容
  5. Java语言程序设计(一)选择题
  6. 数学中的物理、几何概念与含义
  7. 关于org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor的队列
  8. 3.Jenkins 权威指南 --- 设置构建作业
  9. 自动驾驶 5-3 前馈速度控制 Feedforward Speed Control
  10. 怎样在苹果Mac鼠标或触控板上复制和粘贴?
  11. 第五章 多变量线性回归
  12. 蔡颖-《APS走向实践》书解读之三:供应、计划排程、供应链优化
  13. android蓝牙python,android – 使用SL4A(Python)和蓝牙
  14. RPA or 爬虫?模拟人工访问某服务平台—增加空间的访问量
  15. 真心话大冒险的暴强回复
  16. msdtc相关问题汇总
  17. 基于微信小程序的二手汽车拍卖系统
  18. 5G高低频组网,到底是什么意思?
  19. 2021年中国有机颜料供需及主要企业经营分析[图]
  20. CSS 特殊字符 ‘#‘ 、‘.’ 、‘*’、‘:’、空格“ ”、 ‘>’ , ‘,’

热门文章

  1. Web 开发 Browser 调试大全
  2. oracle的一些常见问题及处理
  3. Linux下如何判断磁盘类型,Linux下判断磁盘属于U盘、HDD盘或者SSD盘的方法
  4. Mybatis3 源码解析系列
  5. payload的使 常用xss_Sony某个深度子域上的XSS
  6. Myeclipse包变成文件夹
  7. matlab从哪里学,从零开始学MATLAB(附光盘)/从零开始学系列
  8. 【爬虫剑谱】二卷7章 实战篇-搭建IP代理池绕过反爬检测
  9. IDEA ---- 插件
  10. php线程安全和非线程安全_安全调用线程的步骤