Python中驗證IP地址的方法詳解
IP 代表互聯(lián)網(wǎng)協(xié)議,是分配給每臺連接到互聯(lián)網(wǎng)的計算機的唯一地址。 IP 地址有兩個版本,即 IPv4 和 IPv6。
IPv4 采用點分十進制表示法,由 4 個八位位組組成,每個八位位組包含 0 到 255 之間的數(shù)字。 IPv6 地址包含 8 組,每組 4 個十六進制數(shù)字,每組代表 16 位。
在本指南中,我們將驗證 IPv4 地址。
在 Python 中驗證 IP 地址
驗證IP地址意味著檢查輸入的IP是否有效。
例如:
Input: 192.168.52.124 Output: Valid IP address Input: 656.1.2.3 Output: Invalid IP address
使用 ipaddress 模塊在 Python 中驗證 IP 地址
ipaddress 是 Python 中的一個模塊,用于根據(jù) IP 地址的類型(IPv4 或 IPv6)對 IP 地址進行檢查和分類。 它還執(zhí)行不同的操作,例如算術(shù)運算、比較等。
該模塊有一個名為 ip_address() 的方法,用于驗證 IP 地址。 該函數(shù)以字符串IP作為輸入,如果它能夠成功地將字符串IP轉(zhuǎn)換為IPv4或IPv6地址的對象,則意味著輸入的IP地址是有效的。
否則,它將引發(fā)一個值錯誤,表明該 IP 似乎不是 IPv4 或 IPv6 地址。 我們在下面的代碼中導入了 ipaddress 模塊,并將整個代碼寫入了 try-except 塊中。
如果 IP 有效,則不會引發(fā)異常,如果無效,則值錯誤異常將由 except 塊處理。
情況 1:對于有效的 IP 地址
#Python 3.x
import ipaddress
try:
ip = ipaddress.ip_address("192.168.1.1")
print("Valid IP Address")
except ValueError:
print("Invalid IP Address")
輸出:
#Python 3.x
Valid IP Address
情況 2:IP 地址無效
#Python 3.x
import ipaddress
try:
ip = ipaddress.ip_address("992.168.1.1")
print("Valid IP Address")
except ValueError:
print("Invalid IP Address")
輸出:
#Python 3.x
Invalid IP Address
使用 RegEx.search() 方法在 Python 中驗證 IP 地址
驗證 IP 地址的另一種方法是通過正則表達式將其與有效 IP 地址的預(yù)定義模式進行匹配。 我們通過調(diào)用 re 模塊的 search() 方法并傳遞正則表達式和 IP 作為參數(shù),在以下代碼中驗證了 IP 地址。
如果 IP 有效,則此方法返回 True。 否則,返回 False。
示例代碼:
#Python 3.x
import re
ip = "192.168.2.3"
regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
if(re.search(regex, ip)):
print("Valid IP Address")
else:
print("Invalid IP Address")
輸出:
#Python 3.x
Valid IP Address
在 Python 中手動驗證 IP 地址
我們可以在沒有任何內(nèi)置庫正則表達式的情況下驗證 IP 地址。 我們創(chuàng)建了一個函數(shù),通過檢查以下代碼中的這三個條件來驗證 IP 地址。
如果代碼中滿足以下任一條件,則 IP 無效。
- 八位位組的數(shù)量不是四個。
- 任何八位字節(jié)都包含除整數(shù)以外的任何內(nèi)容。
- 八位位組內(nèi)的任何數(shù)字都在 0-255 范圍之外。
示例代碼:
#Python 3.x
def validate_ip_address(ip):
octects = ip.split(".")
if len(octects) != 4:
return "Invalid IP"
for number in octects:
if not isinstance(int(number), int):
return "Invalid IP"
if int(number) < 0 or int(number) > 255:
return "Invalid IP"
return "Valid IP"
validate_ip_address("192.168.-1.1")
輸出:
#Python 3.x
'Invalid IP'
方法補充
基于Python實現(xiàn)IP地址驗證程序
這是一個使用Python編寫的簡單IP地址驗證程序。程序接受用戶輸入的IP地址,然后對其進行驗證,確保每個地址段都是數(shù)字且在0到255之間。如果IP地址格式正確,程序會輸出“IP地址輸入正確”;如果格式錯誤,程序會指出錯誤并退出。
環(huán)境配置
Python 3.x
項目分布
- 用戶輸入IP地址
- 分割I(lǐng)P地址并驗證段數(shù)
- 驗證每個地址段的內(nèi)容
- 輸出驗證結(jié)果
詳細代碼
cause = True # 設(shè)置判斷網(wǎng)址是否正確的標志變量為真
ip = input('請輸入IP地址:\n').strip(' ')
line = ip.split('.')
if len(line) == 4: # 如果網(wǎng)址按“.”分為4段
for item in line: # 對網(wǎng)址各段進行判斷
if item.isdigit(): # 是否為數(shù)字
if int(item) > 255 or int(item) < 0:
print('IP地址段輸入大于255或小于0錯誤,將退出!!')
cause = False # 網(wǎng)址錯誤,判斷網(wǎng)址標志變量為假
break # 退出循環(huán)
else:
print('IP地址段輸入非數(shù)字錯誤(只能輸入數(shù)字或.),將退出!!')
cause = False
break
if cause:
print('IP地址輸入正確!!')
else:
print('IP地址輸入多于或少于4段地址錯誤,將退出!!')
小結(jié)
這是一個簡單的Python程序,用于驗證用戶輸入的IP地址是否格式正確。程序通過分割輸入的字符串并檢查每個部分,確保它們是有效的數(shù)字并且符合。
到此這篇關(guān)于Python中驗證IP地址的方法詳解的文章就介紹到這了,更多相關(guān)Python驗證IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)將讀入的多維list轉(zhuǎn)為一維list的方法
今天小編就為大家分享一篇python實現(xiàn)將讀入的多維list轉(zhuǎn)為一維list的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python JSONPath進階實戰(zhàn)之高效查詢技巧全解析
JSONPath 是一種用于在 JSON 文檔中定位和提取數(shù)據(jù)的查詢語言,類似于 XPath 在 XML 中的作用,下面小編就來和大家詳細講講JSONPath高效查詢技巧2025-08-08

