我在同一个 LAN 网络上有许多 IP 摄像机。我想获取每台摄像机的 MAC 地址和端口号,虽然我不知道它们的 IP 地址。另外,如果摄像头的ip和端口发生了变化,如何检测呢?
我也在网上搜索过这个问题。大多数人使用一些 Window 函数如 SendARP() 或使用命令行“arp -a”来响应。但是如果这样做,那么无论是相机还是计算机,都可以获得LAN网络的所有MAC地址。
请帮我!
我会从一个端口扫描器开始,比如 nmap,然后寻找可以识别你的 IP 摄像机的信息。
nmap -A -T4 192.168.0.0/24
如果您的所有相机都相同,您可以通过返回的操作系统信息检测到它们。
您也许还可以进行横幅抓取以确定端口:
nmap -sV --script=banner 192.168.0.0/24
使用 C++ 解析 nmap 输出。更改网络地址范围以适合您的网络。
您正在寻找的所有相机都是由同一家公司制造的吗?如果是这样,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
可用作识别因素的命令。在最坏的情况下,您可以向HTTP
IP 地址发送一个数据包,并查看主机是否响应摄像头的网页,假设每个摄像头都有一个嵌入式 Web 服务器。很有可能,您至少可以使用一种协议来识别所有网络设备中的摄像头。
您的 IP 摄像机是否广播任何识别信息,例如使用 mDNS 数据包?也许你可以捕捉到这些广播。谷歌搜索“mDNS”或“Zeroconf”。