python code.py 192.168.0.1 192.168.0.255
1 #!/bin/python
2 # coding: utf-8
3
4 '''
5 将开始地址和结束地址表示的IP范围转换为
6 192.168.0.0/24
7 格式的地址
8 '''
9
10 '''
11 @ips 起始IP
12 @ipe 结束IP
13 @return 192.168.0.0/24 格式的IP范围表示法
14 '''
15 def do(ips, ipe):
16 #TODO: 对输入数据是否为IP地址做校验
17 ipsnum = 0
18 for i in ips.split('.'):
19 ipsnum = (ipsnum << 8) + int(i)
20 ipenum = 0
21 for i in ipe.split('.'):
22 ipenum = (ipenum << 8) + int(i)
23 ipend = ipsnum ^ ipenum
24 zero_num = 0
25 while ipend != 0:
26 ipend = (ipend>>1)
27 zero_num = zero_num + 1
28 zero_num = 32 - zero_num
29 return '%s/%d' % (ips, zero_num)
30
31 if __name__ == '__main__':
32 import sys
33 if len(sys.argv) < 3:
34 print 'bad'
35 else:
36 print do(sys.argv[1], sys.argv[2])
联系我:
Email: xudongsecret@qq.com