Python批量判断IP地址所属地区

43 篇文章 48 订阅
23 篇文章 39 订阅

首先安装Python扩展库netaddr,然后对下面的代码进行简单修改后即可满足某些场合的应用。

from random import randrange
from netaddr import IPRange


def ipRangeTest(ipAddr, ipRange):
    # 遍历IP地址与地区分布对应关系字典
    # 如果ipAddr在某个地区的IP段内
    # 返回该地区名称

    for key, value in ipRange.items():
        if ipAddr in value:
            return key
    return 'unknown'


# 可以根据实际情况替换这个字典的内容
# 或从IP地址库中读入信息

ipRange = {'area1':IPRange('10.2.1.0', '10.2.1.255'),
           'area2':IPRange('10.2.2.0', '10.2.2.255'),
           'area3':IPRange('10.3.0.0', '10.3.255.50'),
           'area4':IPRange('11.1.0.0', '11.1.0.255')}


# 测试
for _ in range(10):
    a = randrange(9,12)
    b = randrange(1,4)
    c = randrange(4)
    d = randrange(256)
    ipAddr = '.'.join(map(str, (a,b,c,d)))
    print(ipAddr, ipRangeTest(ipAddr,ipRange))


部分运行结果:

9.2.3.40 unknown
10.1.3.67 unknown
11.1.1.54 unknown
9.1.2.243 unknown
9.3.2.182 unknown
10.3.0.30 area3
9.1.1.58 unknown
11.1.2.205 unknown
10.3.2.179 area3
11.3.1.240 unknown


更多Python技术文章请关注微信公众号“Python小屋”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值