【发布时间】:2011-02-27 08:54:28
【问题描述】:
我有兴趣找到一种方法来枚举本地网络上所有可访问的设备,而不管它们的 IP 地址如何。例如,在 192.168.1.X 网络中,如果有一台 IP 地址为 10.0.0.X 的计算机插入网络,我希望能够检测到该恶意计算机并最好与它通信。两台计算机都将运行此自定义软件。
澄清:我们希望处理我们不知道单台计算机的 IP 地址是什么并且不能保证它位于任何特定子网上的情况。我们所知道的是,这台计算机在物理上插入了同一个交换机,并且计算机有一个静态 IP 分配给它(但该 IP 可以是任何东西)。
我们可以远程访问网络上的一台计算机(例如 192.168.1.30),并且我们希望能够与网络上的所有其他计算机通信,无论它们的静态 IP 是否设置为 192.168.1。 x、10.0.0.x、10.45.21.7 等)
我意识到这是一个模糊的描述,并且该问题的完整解决方案将是冗长的,所以我真的在寻求帮助以找到正确的方向(“研究以这种方式使用类 XYZ 和 ABC”)而不是完整的实现。
我想要这个的原因是我们公司向成千上万的客户发送了映像计算机,每个客户都有不同的网络设置(大多数使用相同的 IP 方案,但很大一部分不使用,并且大多数没有启用 DHCP他们的网络)。一旦硬件到达,我们就很难在网络上安装它,尤其是如果 IP 方案不匹配,因为现场没有技术人员。理想情况下,我想设计某种控制台,以便在他们的主工作站上使用,它可以查看网络,找到所有运行我们软件的计算机,显示它们当前的 IP 地址,并允许您更改 IP。
编辑:除非我误解了什么,否则我认为我不能使用广播地址 255.255.255.255 来执行此操作。问题是流氓计算机没有返回原始计算机的路由,因此它会丢弃数据包。也许我误解了什么,但下图显示了我对会发生什么的理解。
【问题讨论】:
标签: .net .net-3.5 networking .net-2.0 pinvoke