首页 > 解决方案 > 无法在函数中使用 netaddr 输出列表

问题描述

我是 Python 的新手。试图制作一个脚本来扫描子网并将这些地址用作电子表格中的列表。

我的代码:

from netaddr import IPNetwork
import netaddr


List_IP = []

subnet = input("Please inter subnet mask:")

for ip in IPNetwork(subnet, implicit_prefix=True):
 
    str(ip)

    List_IP.append(ip)


print(List_IP)
print(type(List_IP))

因此,如果我使用任何子网,输出将如下所示:

[IPAddress('3.555.5.550'), IPAddress('3.555.5.550'), IPAddress('3.555.5.550'), 
IPAddress('3.555.5.550')]
<class 'list'>

所以,问题是我不能在我的函数中使用这个列表,因为它有那些 IPAddress。我需要具有明确 IP 的列表,例如:

'3.555.5.550', '3.555.5.550'  and etc

我确实尝试删除列表,但它没有用。

请帮助我,请理解我是初学者:))

标签: networkingpython-3.7

解决方案


尽可能简单:

from netaddr import IPNetwork
import netaddr
from netaddr import IPSet


List_IP = []

subnet = input("Please inter subnet mask:")

for ip in IPNetwork(subnet):
    List_IP.append(str(ip))

print(List_IP)

推荐阅读