您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)如何在python3項(xiàng)目中對(duì)IP地址進(jìn)行判斷,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,其最初的設(shè)計(jì)是用于編寫(xiě)自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開(kāi)發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
具體內(nèi)容如下
輸入一串字符,判斷該字符串是否為點(diǎn)分十進(jìn)制的IP地址,若是則轉(zhuǎn)換為16進(jìn)制輸出,否則輸出“Error”
注意:輸入可能是任意的一個(gè)字符串,比如“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 i<0 or i>255: # 判斷ip地址是否合法 return 'Error' temp='0x' #記錄16進(jìn)制數(shù) for i in lis: a=hex(int(i))[2:].upper().rjust(2,'0') #轉(zhuǎn)換為16進(jìn)制 # 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)
以上就是如何在python3項(xiàng)目中對(duì)IP地址進(jìn)行判斷,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。