【问题标题】:How can I search for a specific computer over a closed network?如何通过封闭网络搜索特定计算机?
【发布时间】:2010-02-19 22:57:41
【问题描述】:

我有一个由 16 台计算机组成的网络,它们都连接到同一个交换机,但没有连接到互联网。 16 台计算机中的一台运行着一个小型 Java 应用程序和一个 BlazeDS 服务器(也就是它在端口上侦听消息)。

目前,其他 15 台“客户端”计算机必须手动输入 java 应用程序所在的“服务器”IP。我的客户端应用程序是 Adob​​e Air,所以我没有能力扫描服务器。

我正在考虑用 Java 或 C++ 编写一个辅助应用程序/实用程序。至少,这个应用程序可以将 IP 显示给用户,然后用户可以将其输入到 Air 应用程序中;邋遢但总比没有好。

我确信有一些工具可以处理这类问题。有什么想法吗?

【问题讨论】:

标签: java c++ networking


【解决方案1】:

我强烈建议为此使用 Zeroconf/Bonjour,因为它可以很容易地处理去中心化的“我应该了解和应该了解我的其他人在哪里”?

在 Java 中(并且完全在您自己的应用程序中)执行此操作的最简单方法是使用 jmdns 项目。 http://jmdns.sourceforge.net/

【讨论】:

【解决方案2】:

您可以为用户编写“发现”功能,将心跳或测试消息发送到当前计算机同一子网中的所有 IP 地址,以寻找正确接受/响应的服务器。

【讨论】:

  • 这当然也是我的第一个想法。我可以从子网的底部开始,然后往上走。我只希望他们不会太远。不过,我认为 zeroConf 可能有点难,但更准确。
  • 是的,它的技术含量有点低,这完全取决于您所在子网的大小,但即使在最多时,您也只能谈论 253 次 ping。但你说得对,最好的解决方案可能是 zeroConf 或其他形式的 dns / 命名服务器。
【解决方案3】:

总之,nmap。你可以告诉它扫描一个网络块

$ nmap -P0 10.104.244.200

Starting Nmap 4.20 ( http://insecure.org ) at 2010-02-19 18:02 Eastern Standard Time
Interesting ports on BOSA638992.fmrco.com (10.104.244.200):
Not shown: 1688 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
80/tcp   open  http
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
371/tcp  open  clearcase
443/tcp  open  https
445/tcp  open  microsoft-ds
2030/tcp open  device2
3389/tcp open  ms-term-serv
MAC Address: 00:17:A4:F3:6D:A7 (Global Data Services)

Nmap finished: 1 IP address (1 host up) scanned in 1.750 seconds

http://nmap.org/

【讨论】:

  • 有趣。假设他们出去买一个新的开关。他们可能会从 10.0.0.x 移动到 192.168.0.x,对吧?
  • 嗯。你的意思是你的服务移动了,对吧?服务器是否有 DNS 名称?如果是这样使用它。如果没有 DNS,是否可以向 DHCP 服务器查询租用号码?
  • 啊,恐怕我没有 DNS 和 DHCP 服务器。只有电脑和交换机。我在想 zeroConf 可能是去这里的方式。
  • 阅读以上内容,通过 AIR 原生的 ZeroConf/Bonjour 看起来非常棒。
【解决方案4】:

Adobe AIR 2.0(作为 Beta 版提供)能够与本机进程进行通信。见http://www.adobe.com/devnet/air/flex/quickstart/interacting_with_native_process.html

您可以使用此工具调用您编写的助手并随应用一起发布。这个助手会使用一些方法来发现你的服务器。例如zeroConf Networking(Apple 称为 Bonjour)。然后,您的 AIR 应用程序将使用它从帮助程序接收到的地址来连接到服务器。

【讨论】:

  • +1 是的,我对此感到非常兴奋,以及其他 2.0 功能。不过,我正在寻找可以同时使用的东西,因为我们将在 2.0 之前发布。
【解决方案5】:

多播可以工作 - 如果您对 java 感到满意,http://www.jgroups.org 怎么样

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2021-10-04
    • 2011-09-27
    相关资源
    最近更新 更多