最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中驗(yàn)證IP地址的方法詳解

 更新時(shí)間:2025年08月13日 09:49:39   作者:跡憶客  
IP 代表互聯(lián)網(wǎng)協(xié)議,是分配給每臺(tái)連接到互聯(lián)網(wǎng)的計(jì)算機(jī)的唯一地址,本文將為大家簡(jiǎn)單介紹一下在 Python 中驗(yàn)證 IP 地址的相關(guān)方法,需要的小伙伴可以了解下

IP 代表互聯(lián)網(wǎng)協(xié)議,是分配給每臺(tái)連接到互聯(lián)網(wǎng)的計(jì)算機(jī)的唯一地址。 IP 地址有兩個(gè)版本,即 IPv4 和 IPv6。

IPv4 采用點(diǎn)分十進(jìn)制表示法,由 4 個(gè)八位位組組成,每個(gè)八位位組包含 0 到 255 之間的數(shù)字。 IPv6 地址包含 8 組,每組 4 個(gè)十六進(jìn)制數(shù)字,每組代表 16 位。

 在本指南中,我們將驗(yàn)證 IPv4 地址。

在 Python 中驗(yàn)證 IP 地址

驗(yàn)證IP地址意味著檢查輸入的IP是否有效。

例如:

Input: 192.168.52.124
Output: Valid IP address

Input: 656.1.2.3
Output: Invalid IP address

使用 ipaddress 模塊在 Python 中驗(yàn)證 IP 地址

ipaddress 是 Python 中的一個(gè)模塊,用于根據(jù) IP 地址的類(lèi)型(IPv4 或 IPv6)對(duì) IP 地址進(jìn)行檢查和分類(lèi)。 它還執(zhí)行不同的操作,例如算術(shù)運(yùn)算、比較等。

該模塊有一個(gè)名為 ip_address() 的方法,用于驗(yàn)證 IP 地址。 該函數(shù)以字符串IP作為輸入,如果它能夠成功地將字符串IP轉(zhuǎn)換為IPv4或IPv6地址的對(duì)象,則意味著輸入的IP地址是有效的。

否則,它將引發(fā)一個(gè)值錯(cuò)誤,表明該 IP 似乎不是 IPv4 或 IPv6 地址。 我們?cè)谙旅娴拇a中導(dǎo)入了 ipaddress 模塊,并將整個(gè)代碼寫(xiě)入了 try-except 塊中。

如果 IP 有效,則不會(huì)引發(fā)異常,如果無(wú)效,則值錯(cuò)誤異常將由 except 塊處理。

情況 1:對(duì)于有效的 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 地址無(wú)效

#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 中驗(yàn)證 IP 地址

驗(yàn)證 IP 地址的另一種方法是通過(guò)正則表達(dá)式將其與有效 IP 地址的預(yù)定義模式進(jìn)行匹配。 我們通過(guò)調(diào)用 re 模塊的 search() 方法并傳遞正則表達(dá)式和 IP 作為參數(shù),在以下代碼中驗(yàn)證了 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 中手動(dòng)驗(yàn)證 IP 地址

我們可以在沒(méi)有任何內(nèi)置庫(kù)正則表達(dá)式的情況下驗(yàn)證 IP 地址。 我們創(chuàng)建了一個(gè)函數(shù),通過(guò)檢查以下代碼中的這三個(gè)條件來(lái)驗(yàn)證 IP 地址。

如果代碼中滿(mǎn)足以下任一條件,則 IP 無(wú)效。

  • 八位位組的數(shù)量不是四個(gè)。
  • 任何八位字節(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'

方法補(bǔ)充

基于Python實(shí)現(xiàn)IP地址驗(yàn)證程序

這是一個(gè)使用Python編寫(xiě)的簡(jiǎn)單IP地址驗(yàn)證程序。程序接受用戶(hù)輸入的IP地址,然后對(duì)其進(jìn)行驗(yàn)證,確保每個(gè)地址段都是數(shù)字且在0到255之間。如果IP地址格式正確,程序會(huì)輸出“IP地址輸入正確”;如果格式錯(cuò)誤,程序會(huì)指出錯(cuò)誤并退出。

環(huán)境配置

Python 3.x

項(xiàng)目分布

  • 用戶(hù)輸入IP地址
  • 分割I(lǐng)P地址并驗(yàn)證段數(shù)
  • 驗(yàn)證每個(gè)地址段的內(nèi)容
  • 輸出驗(yàn)證結(jié)果

詳細(xì)代碼

cause = True  # 設(shè)置判斷網(wǎng)址是否正確的標(biāo)志變量為真
ip = input('請(qǐng)輸入IP地址:\n').strip(' ')
line = ip.split('.')
if len(line) == 4:  # 如果網(wǎng)址按“.”分為4段
    for item in line:  # 對(duì)網(wǎng)址各段進(jìn)行判斷
        if item.isdigit():  # 是否為數(shù)字
            if int(item) > 255 or int(item) < 0:
                print('IP地址段輸入大于255或小于0錯(cuò)誤,將退出!!')
                cause = False  # 網(wǎng)址錯(cuò)誤,判斷網(wǎng)址標(biāo)志變量為假
                break  # 退出循環(huán)
        else:
            print('IP地址段輸入非數(shù)字錯(cuò)誤(只能輸入數(shù)字或.),將退出!!')
            cause = False
            break
    if cause:
        print('IP地址輸入正確!!')
else:
    print('IP地址輸入多于或少于4段地址錯(cuò)誤,將退出!!')

小結(jié)

這是一個(gè)簡(jiǎn)單的Python程序,用于驗(yàn)證用戶(hù)輸入的IP地址是否格式正確。程序通過(guò)分割輸入的字符串并檢查每個(gè)部分,確保它們是有效的數(shù)字并且符合。

到此這篇關(guān)于Python中驗(yàn)證IP地址的方法詳解的文章就介紹到這了,更多相關(guān)Python驗(yàn)證IP地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 理解python中生成器用法

    理解python中生成器用法

    本篇文章給大家詳細(xì)介紹了python中的生成器用法以及原理,有興趣的朋友參考學(xué)習(xí)下吧。
    2017-12-12
  • 淺談如何重構(gòu)冗長(zhǎng)的Python代碼

    淺談如何重構(gòu)冗長(zhǎng)的Python代碼

    這篇文章主要介紹了淺談如何重構(gòu)冗長(zhǎng)的Python代碼,編寫(xiě)干凈的?Pythonic?代碼就是盡可能使其易于理解,但又簡(jiǎn)潔,過(guò)長(zhǎng)的代碼如何做到簡(jiǎn)潔高效,需要的朋友可以參考下
    2023-04-04
  • python中spy++的使用超詳細(xì)教程

    python中spy++的使用超詳細(xì)教程

    這篇文章主要介紹了python中spy++的使用超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 最新評(píng)論

    灵武市| 崇仁县| 阿荣旗| 北川| 潢川县| 射阳县| 绩溪县| 博白县| 北票市| 齐齐哈尔市| 苗栗县| 云林县| 年辖:市辖区| 漠河县| 定兴县| 昌都县| 定安县| 东源县| 蕉岭县| 新余市| 东城区| 咸丰县| 崇仁县| 刚察县| 元阳县| 吉林市| 衡南县| 张家港市| 那曲县| 云霄县| 遵义市| 博野县| 九江县| 巴青县| 宁河县| 玉环县| 祁阳县| 云和县| 湘潭县| 德庆县| 大方县|