1

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?

3

1 Answer 1

2

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).

9
  • Hello, thank you for this useful information. With "assigning IPs" i didn´t mean that the user gives them the ip, i mean the ips were automatically given by the zeroconf protocol and only tell the user which device has which ip, sorry if i made it unclear.
    – Gobliins
    Aug 8, 2012 at 13:45
  • i would like to read some things about the named methods, and may contact you again soon.
    – Gobliins
    Aug 8, 2012 at 13:58
  • Hello, are you there again?
    – Gobliins
    Sep 27, 2012 at 8:40
  • @Gobliins Yes. I'm more active on Super User, but I get notifications for activity over here.
    – Spiff
    Sep 27, 2012 at 18:07
  • Hi, so it turns out that we can assign the ip addresses by dhcp or apipa. Now the question is, we find all IPs but need to know is the ip the target device or just another pc. Could you recommend me something for that? We don´t want lots of traffic, so i would start a udp listener on the device and do udp broadcast on the pc and in the udp response we only need the name of the device. But i was thinking that there have to be some standards like upnp or the mentioned dns-sd.
    – Gobliins
    Sep 28, 2012 at 7:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .