本文實例為大家分享了python3判斷IP地址的具體代碼,供大家參考,具體內容如下
輸入一串字符,判斷該字符串是否為點分十進制的IP地址,若是則轉換為16進制輸出,否則輸出“Error”
注意:輸入可能是任意的一個字符串,比如“abc.bas.fefe.4r4”或者“23.23.11.23.123”
這都是不合法的IP地址
例如
輸入:192.41.6.20
輸出:0xC0290614
輸入:257.32.23.1
輸出:Error
解1
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 myStr = input() if isIP(myStr): print(IP(myStr).strHex().upper()) # ip = list(map(int, myStr.split('.'))) # print('0x', end='') # for i in ip: # print(hex(i)[2:].upper().rjust(2, '0'), end='') else: print('Error')
解2:
def change(lis): if len(lis)!=4: return 'Error' try: # 判斷字符串是否存在非數(shù)字 lis=[int(i) for i in lis] except: return 'Error' for i in lis: if i0 or i>255: # 判斷ip地址是否合法 return 'Error' temp='0x' #記錄16進制數(shù) for i in lis: a=hex(int(i))[2:].upper().rjust(2,'0') #轉換為16進制 # if len(a)!=2: # a='0'+a temp+=a return temp s=list(map(str,input().split('.'))) print(change(s))
解3
l = input().split(".") if len(l) != 4: print("Error") else: s = "" for i in l: try: num = int(i) if num > 255 or num 0: print("Error") s = "" break else: s += hex(num)[2:].upper().rjust(2, "0") except ValueError: print("Error") s = "" break if s: print("0x" + s)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
標簽:淘寶好評回訪 隨州 信陽 興安盟 濟源 昭通 合肥 阜新
巨人網(wǎng)絡通訊聲明:本文標題《python3判斷IP地址的方法》,本文關鍵詞 python3,判斷,地址,的,方法,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。