I am creating a program to talk to a IP Camera, of this model:
This has a simple web interface and I've successfully talked to it in order to control it, and grab video and snapshots from it.
However, I can't find any good documentation on how to detect that this camera is on the network, nor which particular IP address it has.
So far the only tool I have that finds it is the bundled windows software.
I'm assuming (hoping!) that there is a better way than just iterating over all IP addresses in range and seeing if there's something that looks like the camera interface there.
Does anyone know how to do this?
Is there a known API for this sort of thing?
Note that since it is an IP camera, it doesn't connect directly to my computer, and thus there is nothing installed locally I can talk to.
Here are some more details:
According to the link you provided this camera is capable of UPnP.
UPnP is a protocol which has several methods for device discovery/search:
Your code must multicast UDP packets as search requests. Your UPnP devices will answer (depending on configuration) with UPnP Search Responses which are UDP unicast packets.
UPnP Search Responses contains a HTTP URL to allow retrieval of an XML description of the device. The host in the HTTP URL usually is the devices IP/hostname.
Have a look at the UPnP spec.
You don't say which OS/language you are using - so just a small list of APIs and libraries: