2010-02-19 65 views
3

我有一臺16臺電腦的網絡都連接到同一個交換機,沒有連接到互聯網。其中一臺計算機上安裝了一個小型Java應用程序以及BlazeDS服務器(也就是在端口上偵聽消息)。如何通過封閉網絡搜索特定計算機?

目前,其他15臺「客戶端」計算機必須手動輸入java應用程序駐留的「服務器」IP。我的客戶端應用程序是Adobe Air,因此我無法掃描服務器。

我正在考慮用Java或C++編寫助手應用程序/實用程序。至少,這個應用程序可以顯示IP給用戶,然後可以將其輸入到Air應用程序中;馬虎,但比沒有好。

我確定有一些工具可以解決這類問題。有任何想法嗎?

+2

Zeroconf? http://en.wikipedia.org/wiki/Bonjour_(software) – 2010-02-19 23:00:25

+0

更多zeroconf信息:http://stackoverflow.com/questions/1233204/are-there-any-other-java-libraries-for-bonjour-zeroconf -apart-from-jmdns – Stephano 2010-02-19 23:38:53

回答

4

我會強烈建議使用零配置/卓悅的這個,因爲它相當輕鬆處理分散「,其中是誰,我應該知道的人並應該知道我「?

在Java中完成此操作的最簡單方法(完全在您自己的應用程序中)是使用jmdns項目。 http://jmdns.sourceforge.net/

+0

+1感謝關於jmdns的提示。找到這個以及:http://stackoverflow.com/questions/1233204/are-there-any-other-java-libraries-for-bonjour-zeroconf-apart-from-jmdns – Stephano 2010-02-19 23:35:57

1

總之,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/

+0

有趣。假設他們出去買一個新的交換機。他們可能會從10.0.0.x移動到192.168.0.x,對吧? – Stephano 2010-02-19 23:05:01

+0

嗯。你的意思是你的服務移動了,對吧?服務器是否有DNS名稱?如果是這樣的話。如果沒有DNS,可能查詢租用號碼的DHCP服務器? – 2010-02-19 23:10:45

+0

啊,恐怕我是DNS和DHCP服務器。只是電腦和開關。我正在考慮zeroConf可能是去這裏的路。 – Stephano 2010-02-19 23:19:40

1

的Adobe AIR 2.0(可作爲測試版)具有與本機進程通信的能力。請參閱http://www.adobe.com/devnet/air/flex/quickstart/interacting_with_native_process.html

您可以使用此工具調用您編寫並隨應用程序一起提供的幫助程序。這個助手會使用一些發現你的服務器的方法。例如zeroConf Networking(被Apple稱爲Bonjour)。您的AIR應用程序會使用它從幫助程序接收的地址建立到服務器的連接。

+0

+1是的,我對此感到非常興奮,其他2.0特性。然而,我正在尋找可以使用的東西,因爲我們將在2.0之前發佈。 – Stephano 2010-02-19 23:15:32

2

您可以爲發送心跳線或測試消息的用戶編寫一個「發現」功能,以將其發送到當前計算機的同一子網中的所有IP地址,以查找正確接受/響應的服務器。

+0

這當然是我的第一個想法。我可以從子網底部開始工作。我只希望他們不太遠。儘管如此,我認爲zeroConf可能會更難一些,但更準確。 – Stephano 2010-02-19 23:33:35

+0

是的,它有點低科技,這一切都取決於你所在的子網的大小,但即使在你最多談到253坪。但是你認爲最好的解決方案可能是zeroConf或其他形式的DNS /命名服務器是正確的。 – lofte 2010-02-19 23:39:36