【发布时间】:2018-07-30 12:04:01
【问题描述】:
我正在尝试弄清楚如何扫描网络以查找由 avahi 发布的设备。
#!/usr/bin/python3
from zeroconf import ServiceBrowser, Zeroconf
from time import sleep
class MyListener:
def remove_service(self, zeroconf, type, name):
print("Service % removed" % (name))
def add_service(self, zeroconf, type, name):
info = zeroconf.get_service_info(type, name)
info = str(info)
info = info.split(",")[6]
print(info)
zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
try:
sleep(1)
finally:
zeroconf.close()
它有效,但它没有给我任何 IPv4 地址。 输出(示例):
ServiceInfo(type='_http._tcp.local.', name='巴可 ptp-owsserver-2237._http._tcp.local.',地址=b'\n\x80Cj',端口=80, 权重=0,优先级=0,服务器='ptp-owsserver-2237.local.', properties={b'root': b'/'})
请有人告诉我如何获取 avahi 在我们网络中发布的设备的 IPv4 地址?
【问题讨论】: