代码之家  ›  专栏  ›  技术社区  ›  Stephen Jennings

与所有网络计算机通信,不考虑IP地址

  •  2
  • Stephen Jennings  · 技术社区  · 15 年前

    我感兴趣的是找到一种方法来枚举本地网络上所有可访问的设备,而不考虑它们的IP地址。例如,在192.168.1.X网络中,如果有一台IP地址为10.0.0.X的计算机插入到网络中,我希望能够检测到该恶意计算机,并更愿意与其通信。两台计算机都将运行此自定义软件。

    澄清 :我们想处理我们

    我们可以远程访问网络上的一台计算机(例如,192.168.1.30),我们希望能够与网络上的所有其他计算机通信,而不管它们的静态IP是否设置为192.168.1.x、10.0.0.x、10.45.21.7等。)

    我意识到这是一个模糊的描述,而问题的完整解决方案将是冗长的,所以我真的在寻求帮助,寻找正确的方向(“以这种方式使用XYZ和ABC类”),而不是一个完整的实现。

    我希望这样做的原因是,我们公司向成千上万的客户提供映像计算机,每个客户都有不同的网络设置(大多数使用相同的IP方案,但很大一部分没有,而且大多数客户的网络上没有启用DHCP)。一旦硬件到了,我们就很难把它放到网络上,特别是如果IP方案不匹配的话,因为现场没有一个面向技术的人。理想情况下,我想设计一些控制台,从他们的主工作站上使用,它可以查看网络,找到所有运行我们软件的计算机,显示它们当前的IP地址,并允许您更改IP。

    编辑

    5 回复  |  直到 8 年前
        1
  •  2
  •   President James K. Polk    15 年前

    你可以查看各种 协议,特别是SNMP发现。你也可以做一些简单的事情,比如监听UDP广播和每台计算机,然后做出响应。请记住,所有这些解决方案都会引入安全漏洞,您的客户可能不会意识到这一点。

        2
  •  1
  •   Dr. Snoopy    15 年前

    你想要的是广播,这里有一篇关于它的文章:

    http://www.codeproject.com/KB/cs/BroadCasting.aspx

        3
  •  0
  •   Community CDub    8 年前

    您可以使用多播/广播地址与网络中的所有计算机通信。

    Multicast support in .Net

        4
  •  0
  •   jcolebrand    15 年前

    根据我的经验,通常有三种方法。

    有一个预定义的IP地址数,当一台计算机联机时,它将始终尝试和联系(例如192.168.x.250、192.168.x.230等),并让该计算机作为代理,通过它您可以连接到网络上的其他每台计算机。说软件将作为服务运行,每5分钟一次?分钟后将重新连接到服务器以确认它仍处于联机状态。

    第三部正在播出,但有点不同。

    这些都是暴力手段。我将从那里开始,并根据需要进行改进。奥卡姆的剃刀和那些乱七八糟的东西(是的,我意识到这是准确的“多元性不应该毫无必要地假定”,但说奥卡姆的剃刀听起来更酷~我们可以试试爱因斯坦:“使一切尽可能简单,但不简单”?)

        5
  •  0
  •   dbasnett    15 年前

    假设你有一个与你的照片相似的试验台

    1 - On the 192.168.1.30 PC get a dos prompt
    2 - Type  arp 10.0.0.47 <enter>
    3 - Type  arp -a <enter>
    

    10.0.0.47有条目吗?