mirror of
https://github.com/vvzvlad/vestasync.git
synced 2024-11-05 14:59:12 +03:00
49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
import sys
|
||
|
import time
|
||
|
from zeroconf import ServiceBrowser, Zeroconf
|
||
|
from threading import Event
|
||
|
|
||
|
class MyListener:
|
||
|
|
||
|
def __init__(self):
|
||
|
self.found_services = []
|
||
|
|
||
|
def remove_service(self, zeroconf, type, name):
|
||
|
pass
|
||
|
|
||
|
def add_service(self, zeroconf, type, name):
|
||
|
info = zeroconf.get_service_info(type, name)
|
||
|
self.found_services.append(info)
|
||
|
|
||
|
def update_service(self, zeroconf, type, name):
|
||
|
pass
|
||
|
|
||
|
def main():
|
||
|
zeroconf = Zeroconf()
|
||
|
listener = MyListener()
|
||
|
browser = ServiceBrowser(zeroconf, "_workstation._tcp.local.", listener)
|
||
|
|
||
|
# Устанавливаем время ожидания и ждем, пока не найдутся все службы
|
||
|
timeout = 5
|
||
|
wait_event = Event()
|
||
|
wait_event.wait(timeout)
|
||
|
|
||
|
# Закрываем браузер служб и освобождаем ресурсы
|
||
|
browser.cancel()
|
||
|
zeroconf.close()
|
||
|
|
||
|
# Выводим список найденных служб
|
||
|
print("Found services:")
|
||
|
for service in listener.found_services:
|
||
|
print(f"Name: {service.name}")
|
||
|
print(f"IP: {service.parsed_addresses()[0]}")
|
||
|
print("")
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|
||
|
|
||
|
|
||
|
|
||
|
|