0
我有一個數據幀與數據幀中的IPv4和IPv6 CIDR IP地址範圍(這些可以拆分如果需要)。我希望能夠使用這些範圍並創建一個數據框,並使用該範圍內的每個地址創建一個數據框,以便我可以將其與另一個數據框結合以進行一些過濾。使用ipaddress和輸出到數據幀轉換CIDR IP地址範圍
使用ip地址包,以擴展列表功能是:
a = ip.ip_network('103.21.244.0/22')
for x in a.hosts():
print(x)
這就產生了一個列表,僅此IP範圍。有誰知道如何放入一系列CIDR範圍,所以我不需要執行上述n次?如果我將數據框的引用替換爲上面的IP地址,則會出現ValueError,表明它看起來不是IPv4或IPv6網絡。
第二個問題,作爲一個Python新手,我需要做些什麼才能將這些擴展範圍放到列表或數據框中?我嘗試這樣做:
a = ip.ip_network('103.21.244.0/22')
ip_list = [] #x for x in a.hosts()
for x in a.hosts():
ip_list.append(x)
ip_list
而結束:
[IPv4Address('103.21.244.1'),
IPv4Address('103.21.244.2'),
IPv4Address('103.21.244.3'),
IPv4Address('103.21.244.4'),
IPv4Address('103.21.244.5'),
...]
我敢肯定有比採取這一輸出和regexing的IP地址更好的辦法。