I'm interested in finding a way to enumerate all accessible devices on the local network, regardless of their IP address. For example, in a 192.168.1.X network, if there is a computer with a 10.0.0.X IP address plugged into the network, I want to be able to detect that rogue computer and preferrably communicate with it as well. Both computers will be running this custom software.
CLARIFICATION: We want to handle the situation where we do not know what the single computer's IP address is and cannot guarantee that it's on any particular subnet. All we know is that the computer is physically plugged into the same switch and the computer has a static IP assigned to it (but that IP could be anything).
We have remote access to one computer on the network (say, 192.168.1.30), and we want to be able to communicate with all other computers on the network, regardless of whether their static IP is set to 192.168.1.x, 10.0.0.x, 10.45.21.7, etc.)
I realize that's a vague description, and a full solution to the problem would be lengthy, so I'm really looking for help finding the right direction to go in ("Look into using class XYZ and ABC in this manner") rather than a full implementation.
The reason I want this is that our company ships imaged computers to thousands of customers, each of which have different network settings (most use the same IP scheme, but a large percentage do not, and most do not have DHCP enabled on their networks). Once the hardware arrives, we have a hard time getting it up on the network, especially if the IP scheme doesn't match, since there is no one technically oriented on-site. Ideally, I want to design some kind of console to be used from their main workstation which looks out on the network, finds all computers running our software, displays their current IP address, and allows you to change the IP.
EDIT: Unless I've misunderstood something, I don't think I can use the broadcast address 255.255.255.255 to do this. the problem is that the rogue compuer doesn't have a route back to the originating computer, so it'll drop the packet. Perhaps I've misunderstood something, but the diagram below shows my understanding of what would happen.