problems with pyzeroconf and linux
Simo Hosio
zion at ee.oulu.fi
Sun Jan 28 21:12:55 EST 2007
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
More information about the Python-list
mailing list