文章内容

2024/4/22 20:53:50,作 者: 黄兵

通过 Python 判断某个 IP 是否在 IP 地址段中

要判断给定的 IP 地址是否在某个 IP 地址段中,可以使用 ipaddress 模块中的 ip_addressip_network 方法来进行比较。下面是一个示例代码:

import ipaddress

def check_ip_in_ranges(ip, ip_ranges):
    ip_address = ipaddress.ip_address(ip)
    
    for ip_range in ip_ranges:
        if ip_address in ipaddress.ip_network(ip_range):
            return True
    
    return False

ip_ranges = [
    "162.142.125.0/24",
    "167.94.138.0/24",
    "167.94.145.0/24",
    "167.94.146.0/24",
    "167.248.133.0/24",
    "199.45.154.0/24",
    "199.45.155.0/24",
    "206.168.34.0/24",
    "2602:80d:1000:b0cc:e::/80",
    "2620:96:e000:b0cc:e::/80",
    "2602:80d:1003::/112",
    "2602:80d:1004::/112"
]

ip_to_check = "206.168.34.189"

if check_ip_in_ranges(ip_to_check, ip_ranges):
    print(f"The IP address {ip_to_check} is in the specified IP ranges.")
else:
    print(f"The IP address {ip_to_check} is not in the specified IP ranges.")

这段代码定义了一个函数 check_ip_in_ranges(ip, ip_ranges),它接受一个 IP 地址和 IP 地址段列表作为参数,并检查给定的 IP 地址是否在这些 IP 地址段中。然后,它在主程序中使用给定的 IP 地址来调用这个函数,并输出相应的结果。

分享到:

发表评论

评论列表