IP Camera, how to detect it on the network? [closed]

一个人想着一个人 提交于 2019-11-28 01:16:51

问题


I am creating a program to talk to a IP Camera, of this model:

CVUL-I125

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:

  • The camera and the software I'm making will be sold, which means I cannot rely on any particular type of setup at the clients place, except for working DHCP
  • The camera has no API documentation that I can find, if anyone has stronger google-fu than me on that score, please enlighten me
  • The camera has DHCP support, so it does in fact connect to the network successfully, the question is how I can reliably find it afterwards
  • I do not know if it has a hostname, the documentation says nothing and my own DHCP server lists only the MAC address for it

回答1:


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:

  • http://msdn.microsoft.com/en-us/library/windows/desktop/aa381109%28v=vs.85%29.aspx (Windows / COM)
  • http://pupnp.sourceforge.net/ (Linux)
  • http://teleal.org/projects/cling (Java)



回答2:


What you want is to read the DHCP options that this network camera should be passing. Typically any consumer device will output its vendor identifier string in option 43 of the DHCP packets. Interface with your DHCP server, and you can have the DHCP server send you a notification when the camera has been connected to the network.

This procedure is different for each dhcp vendor. Do you know what DHCP will be running in the network?

Otherwise I suggest installing a simple DHCPd. It should be easily configurable to react to the proper option 43 value and talking back to your application.




回答3:


It sounds like it uses DHCP (otherwise it wouldn't be on your network at ALL).

I use this tool all the time:

http://www.angryip.org/w/Home

The "Discovery API" would be to listen on DHCP port 68 when the camera tries to connect to the network. I'd just take a Wireshark trace, or use the above-referenced ip-scan tool.



来源:https://stackoverflow.com/questions/9165536/ip-camera-how-to-detect-it-on-the-network

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!