mirror of
https://github.com/vvzvlad/vestasync.git
synced 2024-11-05 06:49:11 +03:00
49 lines
1.2 KiB
Python
Executable File
49 lines
1.2 KiB
Python
Executable File
#!/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()
|
|
|
|
|
|
|
|
|