国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用 Python 驗證 IP 地址

要使用 Python 驗證 IP 地址,可以使用 ipaddress 模塊的 ip_address() 函數(shù),適用于 IPv4 和 IPv6 地址。還可以使用自定義函數(shù)或正則表達(dá)式來驗證 IP 地址。

使用 ipaddress 模塊驗證 IP 地址

驗證字符串中的數(shù)字是否是有效 IP 地址的最簡單方法是使用 ipaddress 模塊。

使用 ipaddress 模塊前請先 pip 安裝。

pip install ipaddress

我們打開 Python shell,使用 ipaddress.ip_address() 函數(shù)。

>>> import ipaddress
>>> ipaddress.ip_address("192.168.1.1")
IPv4Address('192.168.1.1')

ip_address() 函數(shù)返回 IPv4Address 類型的對象,這意味著字符串中包含有效的 IP 地址。

>>> import ipaddress
>>> ipaddress.ip_address("192.168.1.300")
Traceback (most recent call last):
  File "<pyshell>", line 1in <module>
  File "D:\thonny\lib\ipaddress.py", line 54in ip_address
ValueError: '192.168.1.300' does not appear to be an IPv4 or IPv6 address

如果字符串中包含無效的 IP 地址,ip_address() 函數(shù)會返回 ValueError 異常。

我們可以自定義一個簡單的函數(shù)來判斷 IP 地址是否有效。

import ipaddress 
def check_ip(address):
    try:
        ip = ipaddress.ip_address(address)
        print(f"IP 地址有效:{ip}")
    except ValueError:
        print(f"IP 地址無效:{address}")

check_ip("172.18.1.1")
check_ip("192.168.100.100")
check_ip("192.168.1.300")
# 輸出:
IP 地址有效:172.18.1.1
IP 地址有效:192.168.100.100
IP 地址無效:192.168.1.300

isinstance() 函數(shù)來判斷一個對象是否是一個已知的類型。

自定義函數(shù)驗證 IP 地址

自定義函數(shù),通過拆分 IP 地址,并將 IP 地址的每個部分存儲到中。使用 len() 函數(shù)驗證 IP 字符串是否由 4 個數(shù)字組成。對于 IP 中的每組數(shù)字,驗證該數(shù)字是否為整數(shù),檢查數(shù)字是否介于 0 和 255 之間。

def check_ip(address):
    ip_list = address.split(".")
    if len(ip_list) != 4:
        print(f"IP 地址無效:{address}")
        return False

    for i in ip_list:
        if not isinstance(int(i), int):
            print(f"IP 地址無效:{address}")
            return False

        if int(i) < 0 or int(i) > 255:
            print(f"IP 地址無效:{address}")
            return False
 
    print(f"IP 地址有效:{address}")
    return True
check_ip("172.18.1.1")
check_ip("192.168.100.100")
check_ip("192.168.1.300")
# 輸出:
IP 地址有效:172.18.1.1
IP 地址有效:192.168.100.100
IP 地址無效:192.168.1.300

使用正則表達(dá)式驗證 IP 地址

可以使用正則表達(dá)式驗證 IP 地址,以下是使用的匹配模式:

^:表示要匹配的字符串的開頭。

$:表示字符串的末尾。

\d{1,3}:包含 1 到 3 位數(shù)字的整數(shù)。

.:匹配單個點。

完整的 IP 正則匹配規(guī)則:

^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$

import re 
def check_ip(address):
    match = re.match(r"^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$", address)
    if bool(match) is False:
        print(f"IP 地址無效:{address}")
        return False
    return True

以上代碼只能驗證 IP 數(shù)字格式,需要結(jié)合前面代碼,驗證每個部分的值是否介于 0 和 255 之間。

import re 
def check_ip(address):
    match = re.match(r"^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$", address)
    if bool(match) is False:
        print(f"IP 地址無效:{address}")
        return False
    ip_list = address.split(".")
    for i in ip_list:
        if int(i) < 0 or int(i) > 255:
            print(f"IP 地址無效:{address}")
            return False
    print(f"IP 地址有效:{address}")
    return True
              
check_ip("172.18.1.1")
check_ip("192.168.100.100")
check_ip("192.168.1.300")
# 輸出:
IP 地址有效:172.18.1.1
IP 地址有效:192.168.100.100
IP 地址無效:192.168.1.300

檢查 IP 的類型是 IPv4 還是 IPv6

檢查 IP 是 IPv4 還是 IPv6 類型的簡單方法是使用 ipaddress 模塊。ipaddress.ip_address() 函數(shù)會創(chuàng)建一個對象,使用 isinstance() 函數(shù)來驗證所創(chuàng)建對象的類型。

import ipaddress
def check_ip(address):
    try:
        ip = ipaddress.ip_address(address)

        if isinstance(ip, ipaddress.IPv4Address):
            print(f"{address} 是 IPv4 地址。")
        elif isinstance(ip, ipaddress.IPv6Address):
            print(f"{address} 是 IPv6 地址。")
    except ValueError:
        print(f"{address} 不是有效 IP 地址。")
check_ip("172.18.1.1")
check_ip("192.168.100.100")
check_ip("192.168.1.300")
check_ip("CDCD:910A:2222:5498:8475:1111:3900:2020")
# 輸出:
172.18.1.1 是 IPv4 地址。
192.168.100.100 是 IPv4 地址。
192.168.1.300 不是有效 IP 地址。
CDCD:910A:2222:5498:8475:1111:3900:2020 是 IPv6 地址。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
通過python代碼判斷IP地址合法性
php地址轉(zhuǎn)換
SOCKADDR_IN結(jié)構(gòu),in_addr結(jié)構(gòu),addrinfo結(jié)構(gòu)的定義
iptable:dnat--snat--ip轉(zhuǎn)換
Socket網(wǎng)絡(luò)編程學(xué)習(xí)筆記:常用方法介紹 (轉(zhuǎn))
IPIP.net識別客戶端真實訪問地址,具體到國家,省,市
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服