avahi-sharp

I spent some time last night hacking up some Avahi bindings for C#, using the DBus API. The wrapper is here, and a little test app is here. The test app registers a ‘foobar’ service, and then lists all services in the default (I think?) domain. Obligatory ‘screenshot’ below. Unfortunately, I ran into some dbus-sharp bugs while doing this. You’ll need this patch to dbus-sharp in order to use it. You can also grab a dll here.

snorp@sackbut misc/avahi/avahi-sharp % mono test.exe Service 'Living Room' at DVR-8477.local:80 Txt: TSN=54000000000000 Resolved DVR-8477.local to 192.168.1.105 Reverse resolved 192.168.1.105 to DVR-8477.local Service 'Now Playing on Living Room' at DVR-8477.local:443 Txt: TSN=54000000000000 Resolved DVR-8477.local to 192.168.1.105 Reverse resolved 192.168.1.105 to DVR-8477.local Service 'Now Playing on Living Room' at DVR-8477.local:443 Txt: TSN=54000000000000 Resolved DVR-8477.local to 192.168.1.105 Reverse resolved 192.168.1.105 to DVR-8477.local Service 'iTunes_Ctrl_60AA03D0FEE58A7F' at homer.local:3689 Txt: DbId=10000 Resolved homer.local to 192.168.1.103 Reverse resolved 192.168.1.103 to homer.local Service 'snorp’s Music' at homer.local:3689 Txt: Password=false Resolved homer.local to 192.168.1.103 Reverse resolved 192.168.1.103 to homer.local Service 'Remote Terminal on sackbut' at sackbut.local:22 Resolved sackbut.local to 192.168.1.101 Reverse resolved 192.168.1.101 to sackbut.local Service 'sackbut [00:0d:60:36:95:4d]' at sackbut.local:9 Resolved sackbut.local to 192.168.1.101 Reverse resolved 192.168.1.101 to sackbut.local Service 'foobar' at sackbut.local:8080 Txt: Resolved sackbut.local to 192.168.1.101 Reverse resolved 192.168.1.101 to sackbut.local