gpt4 book ai didi

python ipaddress,只获得第一个可用的主机?

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:44 25 4
gpt4 key购买 nike

我正在使用 pythons ipaddress 模块,我试图只获取第一个可用主机,而不是所有可用主机

下面给了我所有的主机,当我试图索引它时,我得到了下面的错误。

有没有其他方法可以只获得第一个可用的主机?

谢谢

n = ipaddress.ip_network(u'10.10.20.0/24')
for ip in n.hosts():
... print ip
10.10.20.1
10.10.20.2
10.10.20.3
10.10.20.4
...
>>> for ip in n.hosts():
... print ip[1]
...
Traceback (most recent call last):
File "<console>", line 2, in <module>
TypeError: 'IPv4Address' object does not support indexing
>>>

下面的也失败了

>>> print n.hosts()[0]
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'generator' object has no attribute '__getitem__'

最佳答案

hosts() 返回一个不支持索引的生成器对象。您必须遍历它。

如果你只想要第一个元素,只需使用next():

n = ipaddress.ip_network(u'10.10.20.0/24')
first_host = next(n.hosts())

如果要将生成器对象转换为支持索引的列表,必须调用list()函数:

all_hosts = list(n.hosts())
first_host = all_hosts[0]

您还可以像在列表中一样循环遍历生成器对象,就像您在第一个代码片段中所做的那样:

for ip in n.hosts():
# do something with ip: this is the IP address, so don't try to index into it!
pass

关于python ipaddress,只获得第一个可用的主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com