Api IP摄像头,如何在网络上检测?

Api IP摄像头,如何在网络上检测?,api,networking,ip-camera,Api,Networking,Ip Camera,我正在创建一个与此型号的IP摄像头对话的程序: 它有一个简单的web界面,我已经成功地与它交谈,以便控制它,并从中获取视频和快照 但是,我找不到任何关于如何检测此摄像头是否在网络上的好文档,也找不到它具有哪个特定IP地址的好文档 到目前为止,我找到的唯一工具是捆绑的windows软件 我假设(希望!)有一种更好的方法,而不仅仅是迭代范围内的所有IP地址,看看是否有类似于摄像头界面的东西 有人知道怎么做吗 对于这类事情有一个已知的API吗 请注意,由于它是一个IP摄像头,它不能直接连接到我的计算

我正在创建一个与此型号的IP摄像头对话的程序:

它有一个简单的web界面,我已经成功地与它交谈,以便控制它,并从中获取视频和快照

但是,我找不到任何关于如何检测此摄像头是否在网络上的好文档,也找不到它具有哪个特定IP地址的好文档

到目前为止,我找到的唯一工具是捆绑的windows软件

我假设(希望!)有一种更好的方法,而不仅仅是迭代范围内的所有IP地址,看看是否有类似于摄像头界面的东西

有人知道怎么做吗

对于这类事情有一个已知的API吗

请注意,由于它是一个IP摄像头,它不能直接连接到我的计算机,因此没有任何安装在本地的设备可以与我通话

以下是一些更详细的信息:

  • 我正在制作的相机和软件将被出售,这意味着除了工作之外,我不能依赖客户处的任何特定类型的设置
  • 相机没有API文档,我可以找到,如果有人有更强的谷歌富比我在这方面,请启发我
  • 摄像头具有DHCP支持,因此它确实成功地连接到网络,问题是我以后如何可靠地找到它
  • 我不知道它是否有主机名,文档中什么也没说,我自己的DHCP服务器只列出了它的MAC地址

您想要的是读取此网络摄像机应通过的DHCP选项。通常,任何消费者设备将在DHCP数据包的选项43中输出其供应商标识符字符串。与DHCP服务器接口,您可以让DHCP服务器在摄像头连接到网络时向您发送通知

对于每个dhcp供应商,此过程是不同的。您知道网络中将运行什么DHCP吗


否则,我建议安装一个简单的DHCPd。它应该可以很容易地配置,以便对正确的选项43值做出反应,并与应用程序进行对话。

听起来它好像使用了DHCP(否则它根本不会出现在您的网络上)

我一直在使用这个工具:


“发现API”将在摄像机尝试连接到网络时监听DHCP端口68。我只需要做一个Wireshark跟踪,或者使用上面提到的ip扫描工具。

根据您提供的链接,这款相机能够进行UPnP

UPnP是一种具有多种设备发现/搜索方法的协议:

您的代码必须将UDP数据包作为多播搜索请求。UPnP设备将使用UDP单播数据包的UPnP搜索响应进行应答(取决于配置)

UPnP搜索响应包含允许检索设备XML描述的HTTP URL。HTTP URL中的主机通常是设备IP/主机名

看一看这张照片

您没有说您使用的是哪种操作系统/语言,所以只需列出一小部分API和库:

  • (Windows/COM)
  • (Linux)
  • (爪哇)

如果摄像头和软件仅在我的网络上运行,这可能是一个很好的解决方案,但我打算出售与摄像头捆绑的程序,因此我不能依赖DHCP服务器与我一起工作,至少取决于客户端具有何种DHCP服务器和/或配置。它确实使用DHCP。听起来只有在相机连接时我运行程序时,这种方法才会起作用,那么反过来呢?在我的例子中,相机将与软件一起出售给客户,虽然相机很可能一直处于连接状态,但软件可能不会。我希望我可以创建一个自动发现功能,以避免由于客户没有正确设置相机而带来的许多支持麻烦。这听起来很有希望。我根本没有想到UPnP。我会调查的!我暂时不会接受你的答案,直到我确认这一点,但这看起来非常有希望。@LasseV.Karlsen更新了API/库的链接…我将通过MonoTouch(Mono)在iOS中实现这一点,所以我可能需要C#语法的源代码才能使用它。幸运的是,我可能不需要实现整个UPnP堆栈,只需要与discovery相关的部分。@LasseV.Karlsen有一些可用于iOS的SDK(虽然大部分是商业的),但您可以找到UPnP SDK的列表(商业的和开源的)。。。也许这会有所帮助……虽然许多摄像头使用UPnP的SSDP部分进行发现,但其他摄像头使用WS-discovery进行ONVIF控制。还有一些人使用MDN(你好)<代码>关于标准,最好的一点是有这么多可供选择。还有一些流氓使用一些专有协议进行发现:(