Skip to content


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

Posted in General.

One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. You are AWESOME! Thank you so much. Looking at the code, you connect to dbus but then what is using the avahi-sharp lib? Dbus uses it somehow?

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.