python端口IP字符串是否合法

不使用正则表达式的方式:

def is_ip(ip: str) -> bool:
    return True if [True] * 4 == [x.isdigit() and 0 <= int(x) <= 255 for x in ip.split(".")] else False

 使用正则表达式的方式

import re

def isIP(str):
    p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')
    if p.match(str):
        return True
    else:
        return False

  

另一种

def checkip(hostip):
    pat = re.compile(r'([0-9]{1,3})\.')
    r = re.findall(pat,hostip+".")
    if len(r)==4 and len([x for x in r if int(x)>=0 and int(x)<=255])==4:
        return True
    else:
       return False

  

posted @ 2020-06-02 15:57  hchan  阅读(321)  评论(0编辑  收藏  举报