golang と multicast udp で irkit を探す
soh335/go-mdns · GitHub というのを昨日書きました。
client := new(mdns.Client) client.Discover("_irkit._tcp.local.", func(msg *dns.Msg) { for _, rr := range msg.Extra { switch rr := rr.(type) { case *dns.A: fmt.Println(rr.Header().Name, "=>", rr.A) default: } } })
こういう感じで実行すると
irKitD2A6.local. => 10.0.1.15
こういう感じになります。
github.com/miekg/dns
を使って dns message の parse をする場合にに txt record の txt の中が空だと失敗する場合があったので修正の p-r を取り込んでもらいました。なので、既にこちらが入ってる場合は最新版に update しないと動かない場合があります( irkit がそうだった)