[英]How to check single IP address to know if it is IP camera address
编辑:我确实知道有IP地址时如何访问摄像机。 问题是如何检查本地网络中指定的IP地址是否属于IP摄像机。
我在一个路由器的小型局域网中工作。 该网络中可用地址的范围是:从192.168.0.0
到192.168.0.255
有一个连接到该网络的IP摄像机。 该摄像机的地址为: 192.168.0.12
。
我使用arp -a
命令在命令行中查询路由器的ARP表。 此处显示(绿色)。
我通过AXIS IP Utility找到了该地址,但是我希望能够以编程方式进行操作。
相机型号为: 安讯士m1011w
EDIT2 :感谢OnoSendai,我从路由器的ARP表中获得了可能的IP地址池:
如何查询列出的每个IP地址(例如192.168.0.12
)以确保它是IP摄像机?
我确实相信该模型在端口554上提供了HTTP RTSP服务。您可以尝试打开与其的TCP连接-如果设备接受传入的连接,则可能是相机。
如果您具有正确的用户名/密码凭据对来访问它,则可以使用以下URL访问RTSP服务:
rtsp://[username]:[password]@[ip.address]:554/axis-media/media.amp
这是他们的规格链接:
http://www.axis.com/en/products/cam_m1011w/index.htm
这里是访问说明:
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表中所示)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.