Zeroconf (bonjour) assign ip adresses (.NET)

bonjourdomain-name-systemip addressnet

i am on windows and i want to write a tool in .NET that gives IP´s (with zeroconf) to embedded devices in a network.

I am familiar with programming but new to zeroconf, networking.

So i wondered, does a daemon need to run on every embedded device to be detected?
The devices have no windows or linux, the BS is a Bios and a Firmware in C (dhcp is supported)
Or can i just run a host with the ZeroConf tool that detects the devices connected?

Also i wonder if theres a full implementation for windows, i ve seen lots of service publishing and discovery but i guess i dont need that, i only want to assign ip addresses.

After all, i tried out some tutorials for discovering services (but i guess i don´t need that for ip assign?) from Mono.Zeroconf and Codeplex Bonjour, but got starting problems with them. (Necessary daemon may not be running)
Also i tried out a .NET Wrapper for zeroconf but also failed to get started with it.

Can you give me some help with Zeroconf on windows?

Best Answer

The whole meaning of ZeroConf, "Zero Configuration Networking", is that your network devices need zero configuration (that is, no configuration at all) from humans or other servers on the network.

In your scenario, the way to be ZeroConf is for each of your embedded devices to pick an IP address for itself. Without the help of any Windows .NET server process, because if they needed to be configured by something else, it wouldn't be "ZeroConf". Picking your own IP address is officially called "IPv4 link-local addressing", and how to do it is defined in RFC 3927. Microsoft calls this "APIPA".

If you want ZeroConf (serverless) host name to address mapping, you do Multicast DNS (mDNS) on each of your embedded devices (and on the host that needs to find mappings from names to addresses).

If you want ZeroConf (serverless) service announce and browsing, you do DNS Service Discovery (DNS-SD) on each of your embedded devices (and on the host that needs to browse for those services).

Windows already has support for IPv4 link-local addressing built-in, but they didn't do mDNS and DNS-SD the same way Apple did; they did something similar but incompatible called LLMNR. If you want a real IETF ZeroConf stack for Windows, Apple publishes Bonjour for Windows (apparently now the package is called "Bonjour Print Services for Windows", but it's still the Bonjour mDNSResponder ZeroConf software).