编辑:当我有它的IP地址时,我知道如何访问它。问题是如何检查本地网络中指定的IP地址是否属于IP摄像机。
我在一个只有一个路由器的小型本地网络中工作。该网络中可用地址的范围是:从192.168.0.0到192.168.0.255
有一个IP摄像头连接到那个网络。那个照相机的地址是:192.168.0.12。
我使用arp -a命令在命令行中查询路由器的ARP表。这里显示(绿色)。

我通过轴IP实用程序发现了这个地址,但我希望能够通过编程来实现。
相机模型为:Axis m1011w
EDIT2:多亏了OnoSendai,我从路由器的ARP表中获得了可能的IP地址池:

如何查询列出的每个IP地址(例如,192.168.0.12**) 以确保它是一个IP摄像机)?**
发布于 2014-01-09 05:33:59
我确实相信这个模型在端口554上提供了HTTP服务。您可以尝试打开到它的TCP连接--如果设备接受传入的连接,那么它可能是照相机。
如果您有一个正确的用户名/密码凭据对来访问它,那么您可以使用以下URL访问RTSP服务:
rtsp://[username]:[password]@[ip.address]:554/axis-media/media.amp下面是他们规范的链接:
在这里,访问指令:
http://www.wowza.com/forums/content.php?39
为了列出本地网络上的所有IP地址,可以使用以下代码段读取ARP命令转储的信息:
static List<string> GetARP()
{
List<string> _ret = new List<string>();
Process netUtility = new Process();
netUtility.StartInfo.FileName = "arp.exe";
netUtility.StartInfo.CreateNoWindow = true;
netUtility.StartInfo.Arguments = "-a";
netUtility.StartInfo.RedirectStandardOutput = true;
netUtility.StartInfo.UseShellExecute = false;
netUtility.StartInfo.RedirectStandardError = true;
netUtility.Start();
StreamReader streamReader = new StreamReader(netUtility.StandardOutput.BaseStream, netUtility.StandardOutput.CurrentEncoding);
string line = "";
while ((line = streamReader.ReadLine()) != null)
{
if (line.StartsWith(" "))
{
var Itms = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (Itms.Length == 3)
_ret.Add(Itms[0]);
}
}
streamReader.Close();
return _ret;
}该函数将返回一个包含所有本地IP地址的List<string> (如路由器的ARP表中所示)。
https://stackoverflow.com/questions/21012243
复制相似问题