Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)相关的知识,希望对你有一定的参考价值。
IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-09-04 21:57:15 4 # @Author : EnderZhou ([email protected]) 5 # @Link : http://www.cnblogs.com/enderzhou/ 6 # @Version : $Id$ 7 8 from IPy import IP 9 10 def ipip(a): 11 try: 12 ips = IP(a) 13 print a 14 for ip in ips: 15 # print ip 16 if ip == ips[0]: 17 print str(ips[0]) + ‘\\t网络位/The network address‘ 18 elif ip == ips[1]: 19 print str(ips[1]) + ‘\\t网关(大多数情况下)/Gateway(in most cases)‘#大多数情况下这个英文不知道是否准确^_^! 20 elif ip == ips[-1]: 21 print str(ips[-1]) + ‘\\t广播位/Broadcast address‘ 22 else : 23 print ip 24 except Exception as e: 25 #利用报错机制,在报错时对最后一位数值进行减一操作,利用自我调用尝试到正确的网络位实现数据输出 26 b = (a.split(‘/‘)[0]).split(‘.‘) 27 a = b[0] + ‘.‘ + b[1] + ‘.‘ + b[2] + ‘.‘ + str(int(b[-1])-1) + ‘/‘ + a.split(‘/‘)[-1] 28 ipip(a) 29 30 def main(): 31 #执行文件时键盘输入所需要知道的ip地址及掩码 32 inputip = raw_input(‘please input IPaddress(example:192.168.1.1/24):\\n >>>‘) 33 ipip(inputip) 34 # ipip(‘10.10.10.1/30‘)#测试用例,为了避免重复输入注释掉上面两行,取消本行注释即可直接运行本程序测试运行情况 35 36 if __name__ == ‘__main__‘: 37 main()
以上是关于Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)的主要内容,如果未能解决你的问题,请参考以下文章