我想讓局域網中連接的所有系統? 任何人都可以建議我嗎?如何使用java連接到局域網的所有系統名稱?
回答
你爲什麼要他們,爲什麼他們必須是名字?並非所有系統都有名稱。
什麼樣的系統,你想枚舉?
如果你想找到自己的應用程序的附近實例,使用多播UDP來創建一個發現協議。
如果你想找到它有自己爲此協議的一些服務器,然後使用它的一個。
我在Java中用來實現這一被稱爲JCIFS包。這裏是 Library的鏈接。
請注意,以識別子網則需要ping通子網中的所有avaliable IP地址的機器。從那裏你可以做一個反向IP地址查詢來獲取機器的詳細信息。
從從OSI內存爲什麼要ping所有的網絡上的機器的原因是因爲ICMP仍然在OSI模型的最低層。儘管你不能只信任對子網上的所有機器使用ICMP(ping)請求。這是因爲大多數Windows機器防止釣魚攻擊會阻止該協議。相反,您需要採取兩階段檢測方法。首先,通過ICMP ping請求在SubNet Ip地址上廣播。在等待1秒後從ICMP ping請求中,繼續執行到未響應IP地址的SMB連接。您會發現大多數人都將擁有Microsoft網絡的共享打印機,該打印機將響應該端口下的請求。
另一種方法是使用一個NetBIOS反向名稱查找,但它仍然涉及濫發的子網的IP地址範圍。
希望這會有所幫助。
如果我要去嘗試在Java中實現這一點,我會選擇一些未使用的TCP/IP端口號,然後嘗試打開一個套接字在局域網的IP地址範圍(S)每個IP地址。您預計所有連接嘗試都會失敗,但根據機器是否使用IP地址,它們會以不同的方式失敗。如果IP地址正在使用中,您應該得到「拒絕連接」。如果它沒有被使用,你應該得到「沒有路由到主機」或「沒有路由到網絡」。 「連接超時」可能表示主機是防火牆,或者最近存在但目前沒有活動。
另一種方法(我不知道是你可以從Java做的)是發送ARP請求每個IP地址的網絡地址範圍,看看在你的機器的ARP緩存輪番上漲。
和當然,你可以嘗試發送ICMP ping消息,但他們可能通過防火牆。
一旦你有活的IP地址列表,請使用DNS反向查找,找到相應的DNS名稱。但請注意,並非所有IP地址都綁定到DNS名稱。
然而這一切都有點微妙因爲很多機器和網絡的使用各種防火牆,而這些都不會放棄網絡郵件或發送誤導性反應。
- 1. 如何連接到不同局域網中的系統?
- 2. 將服務器從互聯網連接到通過局域網連接到互聯網的系統
- 3. 將消息發送給連接到局域網的所有人
- 4. 列出所有連接到局域網的機器
- 5. 在java中連接到局域網的所有主機的geting ip地址
- 6. 如何將C#系統與局域網外的MySQL數據庫連接起來?
- 7. PHP獲取所有打印機名稱列表連接到系統
- 8. 獲取系統上所有可用網絡接口名稱的C++代碼
- 9. 將Vagrant VM連接到局域網
- 10. 從局域網連接到tomcat:
- 11. 連接到MySQL數據庫局域網
- 12. 通過局域網連接到mySQL
- 13. 連接到系統
- 14. 廣播在局域網內/相互連接的局域網之間使用android
- 15. 從另一個通過局域網連接的系統連接到本地Oracle數據庫(LOCALHOST)
- 16. 的Python 2.7,WMI意外COM錯誤連接到域系統-2147352567非域系統
- 17. 如何連接到WCF的Web服務內部局域網
- 18. 列出連接到單個局域網的所有計算機的IP地址
- 19. 使用局域網,同時具有無線連接到互聯網
- 20. 如何獲得系統上的所有ODBC連接?
- 21. 如何獲取上次使用的網絡連接的名稱?
- 22. 如何在java中使用系統dsn連接數據庫?
- 23. 如何確保我的Windows系統連接到網絡
- 24. 如何禁用Java中的所有網絡連接
- 25. Raspberry PI多局域網網絡連接
- 26. 將域名連接到網絡主機
- 27. 使用java和套接字的vocie聊天,當連接局域網時延遲
- 28. 如何將兩個仿真器連接到局域網android?
- 29. 如何驗證使用opentok連接到系統的設備
- 30. 使用Java套接字連接到未簽名的HTTP網站
嗨感謝您回覆我的郵件,我可以有一些代碼如何使用Jcif類,以及如何獲得系統名稱連接在lOO – Bharath 2009-11-02 06:38:47
http://www.hipergate.org/docs/api/4.0。0/com/knowgate/jcifs/netbios/NbtAddress.html NbtAddress.getByName(ipAddress).isActive() 請注意,您需要爲每個.getByName創建一個線程,因爲它會將當前線程當它等待迴應時睡覺。或者它會超時。 – Chad 2009-11-02 10:45:03
我無法使用jcifs使用線程獲取lan中的所有系統名稱。可以通過給出單個系統ip地址獲取所有名稱,如何爲每個系統名稱使用線程。可以使用代碼如何獲取所有系統名字在lan.Please幫我在這.. – Bharath 2009-11-09 05:20:47