【每日一练】Ipv4地址合法性检测

ip地址规范:

ip地址的规范为(1~255).(0~255).(0~255)

ip地址验证:

方法一:字符串切割,截取

 1 #!/usr/bin/env python3
 2 # -*- coding:utf-8 -*-
 3 """
 4 code is far away from bugs with the god animal protecting
 5                  ☃ 神兽保佑,永无BUG!
 6 """
 7 
 8 import sys
 9 
10 
11 def verify_ip(ip):
12     Addr = ip.split('.')
13     if len(Addr) != 4:
14         print('Ip address need four parts.')
15         sys.exit()
16     for i, item in enumerate(Addr):
17         if len(item) > 3:
18             print('%d part is error enter' % (i+1))
19             sys.exit()
20         try:
21             item = int(item)
22         except:
23             print('Ip address must be digit.')
24             sys.exit()
25 
26         if 1-int(bool(i)) <= item <= 255:
27             pass
28         else:
29             print('Illegal ip address')
30             sys.exit()
31     else:
32         print('Legal ip address')
33 
34 
35 if __name__ == '__main__':
36     if len(sys.argv) != 2:
37         print('Error enter, examples : %s 255.255.255.0' % sys.argv[0])
38         sys.exit()
39     else:
40         verify_ip(sys.argv[1])
# run
1
# ./IP_Verify.py 2   Error enter, examples :/IP_Verify.py 255.255.255.255 3 # ./IP_Verify.py 255.255.255.0 4   Legal ip address 5 # ./IP_Verify.py 0.0.0.0 6  Illegal ip address 7 # ./IP_Verify.py 255.255.255 8   Ip address need four parts. 9 # ./IP_Verify.py 255.255.255.a 10   Ip address must be digit. 11 # ./IP_Verify.py 255.255.255.256 12   Illegal ip address

 

方法二:正则表达式

posted @ 2018-09-26 16:09  木石溪  阅读(1321)  评论(0编辑  收藏  举报