繁体   English   中英

如何检查单个IP地址以了解它是否是IP摄像机地址

[英]How to check single IP address to know if it is IP camera address

编辑:我确实知道有IP地址时如何访问摄像机。 问题是如何检查本地网络中指定的IP地址是否属于IP摄像机。


我在一个路由器的小型局域网中工作。 该网络中可用地址的范围是:从192.168.0.0192.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM