import dbus, avahi, dbus.glib def __serviceDetected(interface, protocol, name, stype, domain, flags): print "Found something" bus = dbus.SystemBus() server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER) browser = server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_INET, '_ssh._tcp', '', 0) listener = dbus.Interface(bus.get_object(avahi.DBUS_NAME, browser), avahi.DBUS_INTERFACE_SERVICE_BROWSER) listener.connect_to_signal('ItemNew', __serviceDetected)