您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何在python3項目中對IP地址進行判斷,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。
具體內容如下
輸入一串字符,判斷該字符串是否為點分十進制的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: # 判斷字符串是否存在非數字 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進制數 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)
以上就是如何在python3項目中對IP地址進行判斷,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。