python 判斷輸入的是不是合法(正確)的ip

雲中不知人發表於2017-04-28

功能如題,實現如下:

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:
        print "ok"

邏輯如下:

先使用正則獲取欄位中被“.”隔離的數字,數字長度為1~3

給引數hostip的末尾加上“.”,這步是為了跟正規表示式切合

然後執行findall後,做兩個判斷:一個是正則獲取到的列表長度必須為4,另一個是這個列表中的每一項必須大於等於0和小於等於255;

如果滿足以上條件,可以判斷這個ip是合法的

相關文章