Infi-chu:

http://www.cnblogs.com/Infi-chu/

模块:IPy

功能:辅助我们高效的完成IP的规划工作

安装:

wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate

tar -zxvf Ipy-0.81.tar.gz
cd IPy-0.81
python setup.py install

IP地址、网段的基本处理:

使用方法:

#from IPy import IP

#ip_1 = IP('192.168.1.0/24')

#print(ip_1.len()) # 输出192.168.1.0/24网段的IP个数

#for a in ip_1:

# print(a) # 输出192.168.1.0/24网段的所有IP清单

IP地址的转化:

#from IPy import IP

#ip_2 = IP('192.168.1.1')

#ip_2.reverseNames() # 反响解析地址格式

#ip_2.iptype() # 查看IP地址类型

#ip_2.int() # 将格式转换为整型格式

#ip_2.strHex() # 将格式转换为16进制格式

#ip_2.strBin() # 将格式转换为2进制格式

#print(IP(0x8188808)) # 将16进制转化为IP格式

IP网段的转化:

#from IPy import IP

# 输出192.168.1.0/24

#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))

# 通过strNormal() 方法指定上述三种格式的输出:

#print(IP('192.168.1.0/24').strNormal(0)) # 参数(wantprefixlen)为0,无返回,输出192.168.1.0

#print(IP('192.168.1.0/24').strNormal(1)) # 参数(wantprefixlen)为1,prefix格式,输出192.168.1.0/24

#print(IP('192.168.1.0/24').strNormal(2)) # 参数(wantprefixlen)为2,decimalnetmask格式,输出192.168.1.0/255.255.255.0

#print(IP('192.168.1.0/24').strNormal(3)) # 参数(wantprefixlen)为3,lastIP格式,输出192.168.1.0-192.168.1.255

多网络计算方法:

功能:比较两个网段是否存在包含、重叠等关系,比如192.168.1.0/24 和192.168.1.0/25;192.168.0.0/24 和192.168.1.0/24

使用方法:

#from IPy import IP

#IP('192.168.0.0/24')<IP('192.168.1.0/24')

# 判断IP地址和网段是否包含于另一个网段中

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

# 判断两个网段是否存在重叠,使用overlaps()方法

#IP('192.168.0.0/23').overlaps('192.168.1.0/24') # 返回1,表示重叠

#IP('192.168.1.0/24').overlaps('192.168.2.0/24') # 返回0,表示没有重叠

根据输入的IP地址或网段地址,返回网络地址、广播地址、地址反响解析、子网数、IP类型等信息:

#from IPy import IP

#ip_inp=raw_input('输入IP地址或网段地址')

#ip=IP(ip_inp)

#if len(ip)>1: # 是一个网段

# print('网络地址是:%s' %ip.net())

# print('子网掩码是:%s' %ip.netmask())

# print('广播地址是:%s' %ip.broadcast())

# print('地址反向解析:%s' %ip.reverseName()[0])

# print('网络子网数为:%s' %sip.len())

#else: # 是一个IP地址

# print('IP地址反向解析:%s' %ip.reverseName()[0])

#

#print('16进制地址:%s' %ip.strHex())

#print('2进制地址:%s' %ip.strBin())

#print('IP地址类型:%s' %ip.iptype())

Python自动化运维——IP地址处理模块的更多相关文章

  1. Python自动化运维之10、模块之json、pickle、XML、PyYAML、configparser、shutil

    序列化 Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类 ...

  2. Python自动化运维之9、模块之sys、os、hashlib、random、time&datetime、logging、subprocess

    python模块 用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...

  3. Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

    内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...

  4. Python之实用的IP地址处理模块IPy

    实用的IP地址处理模块IPy 在IP地址规划中,涉及到计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP类型等 别担心,Ipy模块拯救你.Ipy模块可以很好的辅助我们高效的完成IP的规划工 ...

  5. python自动化运维之CMDB篇-大米哥

    python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ  ...

  6. Ansible自动化运维工具及其常用模块

    Ansible自动化运维工具及其常用模块 目录 Ansible自动化运维工具及其常用模块 一.Ansible简介 1. Ansible概述 2. Ansible作用 3. Ansible的工作模块 4 ...

  7. python自动化运维学习第一天--day1

    学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...

  8. 【目录】Python自动化运维

    目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...

  9. Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...

随机推荐

  1. js事件学习的小demo

    直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ...

  2. Consul 配置ACLs

    比如consul.exe 在D:\consul来个json配置文件在 D:\consul\config.jsonjson 格式{ "acl_datacenter": "d ...

  3. 在centos7中安装redis,并通过node.js操作redis

    引言 最近在学习node.js 连接redis的模块,所以尝试了一下在虚拟机中安装cent OS7,并安装redis,并使用node.js 操作redis.所以顺便做个笔记. 如有不对的地方,欢迎大家 ...

  4. nginx封IP脚本

    #!/bin/bash max= confdir=/etc/nginx/conf.d/blockips.conf logdir=/var/log/nginx/access.log echo " ...

  5. Python3条件控制语句

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. if语句 if 条件: 代码块 elif 条件: 代码块 else: 代码块 python中用elif ...

  6. IOS Runtime的用法

    什么是runtime? 1> runtime是一套底层的C语言API(包含很多强大实用的C语言数据类型.C语言函数)2> 实际上,平时我们编写的OC代码,底层都是基于runtime实现的* ...

  7. Android(java)学习笔记17:网络编程的概述

    1. 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 ...

  8. HDU 3625 第一类斯特林数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3625 题意: n个房间,房间里面放着钥匙,允许破门而入k个,拿到房间里面的钥匙后可以打开对应的门,但是 ...

  9. 2018.10.3 MianShiBaoDian JavaWeb后端部分

    MSBD 四.JavaWeb后端部分 1.Tomcat的优化经验 去掉对web.xml的监控,吧jsp提前编写成servlet,由于物理内存的情况,加大Tomcat使用的jvm的内存 2.HTTP请求 ...

  10. 【洛谷P4124】[CQOI2016]手机号码

    手机号码 数位DP模板题 记忆化搜索: #include<iostream> #include<cstring> #include<cstdio> using na ...