Python----检测字符串是否是十进制格式的IP地址

标签: 正则表达式 网络 ipv4
568人阅读 评论(0) 收藏 举报
分类:

功能描述:检测输入的字符串是否符合IPv4规范的IP

参数:ipStr任意字符串

返回值:True/False

约束:不允许使用正则表达式

IPv4地址范围说明:

A类地址:1.*.*.* 到127.*.*.* 和 0.0.0.0(全网络地址)

B类地址:128.*.*.* 到191.*.*.* 

C类地址:192.*.*.* 到223.*.*.*

D类地址:224.*.*.* 到239.255.255.255 

E类地址:240.0.0.0 到255.255.255.255

*表示0~255

关键点:字符串、IPv4规范


def checkIPv4(ipStr):
  print '+++++++++++++++++++++++++++++++++++++++'
  print 'The Input Ip String is =',ipStr
  IPv4List  = ipStr.split('.')
  print 'Ip String convert to ip List is =',IPv4List
  IPv4Count = len(IPv4List)
  print 'The Num of IPv4List is =',IPv4Count

  if(4!=IPv4Count):
    return False

  for i in range(0,IPv4Count):
    Each_IPv4_List_Len = len(IPv4List[i])
    print IPv4List[i],Each_IPv4_List_Len
    if Each_IPv4_List_Len < 1 or Each_IPv4_List_Len > 3:
      print "Error: The Len of %s is %d" % (IPv4List[i],Each_IPv4_List_Len)
      return False
    
    for j in range(0,Each_IPv4_List_Len):
      if IPv4List[i][j]<'0' or IPv4List[i][j]>'9':
        print "Error: The %s is not only number" % IPv4List[i]
        return False

    value_of_each_IPv4_List = int(IPv4List[i])
    if(value_of_each_IPv4_List<0 or value_of_each_IPv4_List>255):
      print "The Number of %s is overflow" % IPv4List[i]
      return False

  if int(IPv4List[0]) == 0:
    if int(IPv4List[1])==0 and int(IPv4List[2])==0 and int(IPv4List[3])==0 :
      pass
    else:
      print "Error: Not all is Zero"
      return False

  return True
    
print checkIPv4("192.168.1.1")
print checkIPv4("0.0.0.0")
print checkIPv4("255.255.255.255")
print checkIPv4("1.2.3.a")
print checkIPv4("1231.231.3.4")
print checkIPv4("0.1.1.1")
print checkIPv4("-1.2.3.4")
print checkIPv4("*&^.3.%.3")



查看评论

python实现判断一个字符串是否是合法IP地址

一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串...
  • Together_CZ
  • Together_CZ
  • 2017-08-24 17:34:02
  • 3601

Python判断IP地址格式是否合法

def isIpV4AddrLegal(ipStr): # 切割IP地址为一个列表 ip_split_list = ipStr.strip().split('.') # 切割后...
  • u011731378
  • u011731378
  • 2017-08-29 22:04:48
  • 556

python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)

进行协议解析时,总是会遇到各种各样的数据转换的问题,这里详细列举了整数之间的进制转换,以及整数、字符串、字节串三者之间的相互转换。当然仅仅是抛砖引玉,有更好更简单的方法,欢迎欢迎...
  • crylearner
  • crylearner
  • 2014-08-27 00:19:41
  • 184283

python IP格式校验

校验对于web开发同学来说,写代码时是必不可少的。     不管前端有没有做校验,后端还是必须得要做校验。出于安全性考虑,可以有效的防止sql注入。     校验其实是一件很无聊的事情,重复写着代码。...
  • zhubaoJay
  • zhubaoJay
  • 2017-06-10 14:35:30
  • 1004

Python下校验一个字符串是否为ip地址

ipv4举例: 利用正则表达式来匹配, 网上k
  • jiansheliuxing
  • jiansheliuxing
  • 2014-09-11 17:00:05
  • 6414

如何利用Python判断一个字符串是合法ip

京东2018校招面试题 Python方向
  • m0_37218227
  • m0_37218227
  • 2017-09-19 14:36:42
  • 396

使用Python获取并处理IP的类型及格式

公网与私有网络的判断其实十分简单,只要记住私有网络的三个网段。不过,对于记性不好的人或者学识不是很高的机器来说,有一种判断方法还是有必要的。 写如下脚本:   1 from IPy import...
  • grey_csdn
  • grey_csdn
  • 2017-04-16 14:45:15
  • 847

python怎么判断IP地址的合法性

使用Python判断IP地址合法性的方法。 1,python实现代码: proot@yang python]# vi check_ip.py #!/usr/bin/python...
  • jbxue123
  • jbxue123
  • 2014-04-08 07:00:42
  • 2258

将十进制ip地址转化为字符串点分十进制ip地址

将十进制ip地址转化为字符串点分十进制ip地址 在使用linux下udp的socket时,发现服务端不需要连接客户端,并且 ,每次接收数据时,都需要预先定义一个变量来保存发送数据端(客户端)ip地址,...
  • suyinfan
  • suyinfan
  • 2017-08-11 22:49:48
  • 894

Java用正则表达式判断是否为IP

原文http://you23hai45.iteye.com/blog/2026855?utm_source=tuicool代码 /** 1. @Title:IpAddress.java 2. ...
  • ImSeekbar
  • ImSeekbar
  • 2015-04-15 11:20:40
  • 11565
    个人资料
    持之以恒
    等级:
    访问量: 2万+
    积分: 1926
    排名: 2万+
    文章存档