如何有效地忽略未分配的父IP地址网络?

时间:2018-01-19 20:18:58

标签: python networking ip python-requests ip-address

我正在浏览ARIN whois API以查找所有网络范围。下面的代码采用起始IP地址,将其发送到ARIN,并返回该网络的结束IP地址。然后该结束地址加1,这个新值成为发送到ARIN的下一个地址。这种方法效果很好,但是当ISP有大量未分配的地址时效率很低,因为必须检查每个起始地址,直到找到另一个分配的网络。

代码是一个独立的示例,显示如何分配一些网络范围,然后显示AT& T未分配的一段地址。如何在不检查每个地址的情况下检查这些未分配的网络?

import requests
from ipaddress import ip_address

IPAddress = str.replace('12.31.71.56','.','-')

while True:
    try:
        url = 'https://whois.arin.net/rest/net/NET-' + IPAddress + '-1.json'
        request = requests.get(url)
        response = request.json()
        endAddress = response['net']['endAddress']['$']
        IPAddress = str.replace((ip_address(endAddress) + 1).compressed,'.','-')
        print(IPAddress)
        print(response['net']['orgRef']['@name'])
    except ValueError:
        IPAddress = str.replace(IPAddress,'-','.')
        IPAddress = str.replace((ip_address(IPAddress) + 1).compressed,'.','-')
        print(IPAddress)
    if IPAddress == '12-31-71-150':
        break

0 个答案:

没有答案