python ip,Python IP处理模块IPy(转载)
安装
使用
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(转载)相关推荐
- python解析html用哪个模块_[转载]python模块学习---HTMLParser(解析HTML文档元素)
HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. 使用时需要定义一个从类HTMLParser继承的类,重定义 ...
- python中IP处理模块IPy
1.安装 pip install IPy 2.IP地址.网段的基本处理 >>> IP('10.0.0.1').version() 4 >>> IP('::1').v ...
- 一文掌握使用Python的IP处理模块IPy
IPy是Python支持IP的各种操作第三方模块,需要pip安装后才能使用,安装方法: pip install IPy IPy支持的方法和属性: >>> dir(IPy) ['INT ...
- python笔记系列:IP地址处理模块IPy
IP地址处理模块IPy wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificat ...
- python ipaddress模块_Python学习笔记-IP地址处理模块Ipy
IP地址处理模块Ipy IPy模块可以很好的辅助我们高效完成IP的规划工作. 安装IPy模块[root@kurol ~]# python36 -m easy_install -i http://pyp ...
- python ip,Python中IP地址处理IPy模块的使用
IPy模块可以很好的帮助我们完成IP的计算和规划.现在网上也有很多IP地址计算的网站,这个模块实现的功能和他们也差不多. 安装 先下载源码,地址:https://pypi.python.org/pyp ...
- python ipaddr_python之IP地址或IP段处理模块-ipaddr
python处理IP和IP段的模块基本有两个:IPy与ipaddr IPy基本处理8位.16位.24位掩码的网段,其他的网段处理起来就会出现问题. ipaddr是google出的一个模块,很好的可以处 ...
- Python:判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1255).(02 ...
- python实现将ip段解析为单个ip
文章目录 将ip段解析为单个ip 192.168.1.*样式的ip段分解 192.168.1-10.*样式的ip段进行分解 192.168.1.0-255样式的ip段进行分解 192.168.1.0/ ...
最新文章
- python调用exe程序 传入参数_关于使用c#调用python脚本文件,脚本文件需要传递参数...
- [剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]
- 算法工程师进化-基础理论
- P2604 [ZJOI2010]网络扩容
- Java语言程序设计(一)选择题
- 数学中的物理、几何概念与含义
- 关于org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor的队列
- 3.Jenkins 权威指南 --- 设置构建作业
- 自动驾驶 5-3 前馈速度控制 Feedforward Speed Control
- 怎样在苹果Mac鼠标或触控板上复制和粘贴?
- 第五章 多变量线性回归
- 蔡颖-《APS走向实践》书解读之三:供应、计划排程、供应链优化
- android蓝牙python,android – 使用SL4A(Python)和蓝牙
- RPA or 爬虫?模拟人工访问某服务平台—增加空间的访问量
- 真心话大冒险的暴强回复
- msdtc相关问题汇总
- 基于微信小程序的二手汽车拍卖系统
- 5G高低频组网,到底是什么意思?
- 2021年中国有机颜料供需及主要企业经营分析[图]
- CSS 特殊字符 ‘#‘ 、‘.’ 、‘*’、‘:’、空格“ ”、 ‘>’ , ‘,’