0

我在同一个 LAN 网络上有许多 IP 摄像机。我想获取每台摄像机的 MAC 地址和端口号,虽然我不知道它们的 IP 地址。另外,如果摄像头的ip和端口发生了变化,如何检测呢?

我也在网上搜索过这个问题。大多数人使用一些 Window 函数如 SendARP() 或使用命令行“arp -a”来响应。但是如果这样做,那么无论是相机还是计算机,都可以获得LAN网络的所有MAC地址。

请帮我!

4

3 回答 3

2

我会从一个端口扫描器开始,比如 nmap,然后寻找可以识别你的 IP 摄像机的信息。

nmap -A -T4 192.168.0.0/24

如果您的所有相机都相同,您可以通过返回的操作系统信息检测到它们。

您也许还可以进行横幅抓取以确定端口:

nmap -sV --script=banner 192.168.0.0/24

使用 C++ 解析 nmap 输出。更改网络地址范围以适合您的网络。

于 2012-03-07T17:13:03.677 回答
1

您正在寻找的所有相机都是由同一家公司制造的吗?如果是这样,MAC 地址可能都共享一个分配给该公司的公共前缀,或者它们是否支持 HTTP 或其他一些您可以用来探测相机以识别它的协议?

如果它们不共享相似的 MAC 地址,您仍然可以使用其他方法查找所有摄像机。

我可能会解决这个问题的一种方法:

For each IP address in your network range {
    Send ARP request for IP address

    If ARP response received {
       Check MAC address of ARP response

       If MAC address matches camera MFR {
           // Add to list
       } else {
           // Probe IP address for device specific webpage or service
           If probe matches { 
               // Add to list
           }
       }
    }
}

您可能会发现相机支持一些SNMP可用作识别因素的命令。在最坏的情况下,您可以向HTTPIP 地址发送一个数据包,并查看主机是否响应摄像头的网页,假设每个摄像头都有一个嵌入式 Web 服务器。很有可能,您至少可以使用一种协议来识别所有网络设备中的摄像头。

于 2012-03-07T17:20:28.657 回答
1

您的 IP 摄像机是否广播任何识别信息,例如使用 mDNS 数据包?也许你可以捕捉到这些广播。谷歌搜索“mDNS”或“Zeroconf”。

于 2012-03-07T17:09:06.647 回答