Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从IP、MAC或主机名识别网络设备_C# - Fatal编程技术网

C# 从IP、MAC或主机名识别网络设备

C# 从IP、MAC或主机名识别网络设备,c#,C#,我一直在寻找一种方法来获取网络主机名中的PC列表。查看这里和其他地方,我发现了很多使用DirectoryEntry的提及,但没有一个对我有用,我得到了一个空列表 最后在这里,我找到了一个答案——使用GetIpNetTable获取ARP表 这给了我IP和MAC地址。使用IPs,我使用Dns.GetHostEntry获得主机名。然而,现在我的名单上有个人电脑、打印机、路由器以及在搜索时局域网上连接的任何东西 我如何过滤掉这些设备,只保留PC台式机和笔记本电脑 任何其他获得可用PC列表的解决方案也将被

我一直在寻找一种方法来获取网络主机名中的PC列表。查看这里和其他地方,我发现了很多使用DirectoryEntry的提及,但没有一个对我有用,我得到了一个空列表

最后在这里,我找到了一个答案——使用GetIpNetTable获取ARP表


这给了我IP和MAC地址。使用IPs,我使用Dns.GetHostEntry获得主机名。然而,现在我的名单上有个人电脑、打印机、路由器以及在搜索时局域网上连接的任何东西

我如何过滤掉这些设备,只保留PC台式机和笔记本电脑


任何其他获得可用PC列表的解决方案也将被接受。

打印机、路由器和局域网上连接的任何其他设备都是计算机。对真的。它没有显示器和键盘并不意味着它不是电脑。您的许多设备甚至运行Linux。@spender搞笑哈哈,不-我知道所有这些-甚至电话是一台计算机-我的问题仍然存在-我如何识别设备type@RonBeyer-见我的评论above@537mfb给定IP、主机名或MAC地址,您无法识别设备类型。有时,你可以使用MAC电脑来识别网卡/芯片的制造商,但IP/名称/MAC电脑上没有任何信息表明它是一个设备还是另一个设备。您可以尝试端口探测或数据包扫描并猜测设备类型,但这并不可靠。没有任何东西可以通用地发送到IP,它会以“我是XYZ”作为响应。