2010-10-27 64 views
1

我想编写运行在联网设备(即PC)中的软件。它可以自动检测其他网络设备的类型。例如,它可以检测到在同一网络中运行的PS3,Wii,IPad。有任何想法吗?谢谢,检测家庭网络中的所有联网设备的类型

+0

什么样的想法?任何方向? – Oded 2010-10-27 18:42:37

+0

我相信UPnP是为此而努力的方式,而且我认为这就是Windows网络屏幕的做法。虽然这不是一个微不足道的实现,但我会为初学者进行研究。 – 2010-10-27 19:07:43

回答

1

您有两个问题:首先检测到设备连接到您的网络,并在192.168.1.x。其次,以某种方式检测该设备是什么。

首先是易于完成:有UPnP和Bonjour等发现协议。但是,在家庭网络场景中,获取连接设备列表的最简单和最可靠的方法可能是从您的路由器中获取DHCP预留。您可能需要从路由器的基于HTML的管理界面—刮取数据,因为这可能是—,但它会起作用。 (如果您使用的是.NET,请考虑HTML Agility Pack来完成此操作。)

一旦您拥有连接设备的IP地址列表,您的下一个问题就是要弄清楚每个设备的实际内容。这将会更具挑战性。一些可能性:

  • 您可能能够使用MAC地址来帮助检测设备的供应商。 (Here's a list.
  • 如果您使用的是UPnP,则可以询问设备是什么。
  • 使用IP fingerprinting来确定设备是什么。
0

夫妇的想法。广播IP地址 - 255.255.255.255是设备说话并说“我在这里”的地方。应该能够听到这个,并找到IP地址和更多。其次,如果通过DHCP客户端(显然)为设备分配IP地址,则通常可以在dhcp设备上找到列表。设备通常具有名称,这是一个更高级别的协议,例如windows SMB,您可能必须连接才能获取该信息。