On Sat, 27 Jan 2007, Damjan wrote: > >> I am trying to get pyzeroconf (http://sourceforge.net/projects/pyzeroconf) >> running on my machine but having trouble... Running the Zeroconf.py file >> seems to register the service, but is unable to find it. > > You should be running avahi.. it also comes python support. > > Here's an example that registers a CNAME that points to your hostname (that > avahi itself publishes) > > #! /usr/bin/env python > import avahi, dbus > from encodings.idna import ToASCII > > # Got these from /usr/include/avahi-common/defs.h > CLASS_IN = 0x01 > TYPE_CNAME = 0x05 > > TTL = 60 > > def publish_cname(cname): > bus = dbus.SystemBus() > server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, > avahi.DBUS_PATH_SERVER), > avahi.DBUS_INTERFACE_SERVER) > group = dbus.Interface(bus.get_object(avahi.DBUS_NAME, > server.EntryGroupNew()), > avahi.DBUS_INTERFACE_ENTRY_GROUP) > > rdata = createRR(server.GetHostNameFqdn()) > cname = encode_dns(cname) > > group.AddRecord(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, dbus.UInt32(0), > cname, CLASS_IN, TYPE_CNAME, TTL, rdata) > group.Commit() > > > def encode_dns(name): > out = [] > for part in name.split('.'): > if len(part) == 0: continue > out.append(ToASCII(part)) > return '.'.join(out) > > def createRR(name): > out = [] > for part in name.split('.'): > if len(part) == 0: continue > out.append(chr(len(part))) > out.append(ToASCII(part)) > out.append('\0') > return ''.join(out) > > if __name__ == '__main__': > import time, sys, locale > for each in sys.argv[1:]: > name = unicode(each, locale.getpreferredencoding()) > publish_cname(name) > try: > while 1: time.sleep(60) > except KeyboardInterrupt: > print "Exiting" > > > -- > damjan
Hi, I actually tried Avahi also at first, but was having a lot of difficulties setting it up to my actual target environment (Maemo platform, based on Debian, and used on Nokia 770&N800 devices...). Probably this is anyhow an issue of Debian network configuration, so maybe I'll ask the lists there also. I will later utilize Avahi, if possible, so thanks for the code snippet. :) And if anyone knows what might be the propblem with Pyzeroconf and my dear Ubuntu, please tell me. Br, Simo -- http://mail.python.org/mailman/listinfo/python-list