2012-02-28 106 views
0

我有一個類似於此問題的問題,它以前被問過,但我的問題是不同的。我需要能夠看到端口是否打開並且不會被防火牆自動阻止。我找到的所有示例都只是查找服務器可以綁定的端口,但不檢查端口是否未被防火牆阻止。如果它被防火牆阻止,則不在LAN上的客戶端無法連接到服務器。有沒有人有任何方法自動執行此操作?我知道你可以在Windows中使用CMD手動檢查端口,但我需要自動執行此操作。謝謝,並對任何混淆抱歉。Java服務器套接字:找到一個未被防火牆阻止的開放端口

+0

我是怎麼得到-1的?我在過去的一個小時裏研究了這一點,沒有人找到我找到的解決方案。 – MrDrProfessorTyler 2012-02-28 22:23:29

+1

詢問配置/管理防火牆的人員。沒有深入細節,從機器本身就沒有簡單的方法來做到這一點,不管你認爲Windows中的CMD是什麼......它不是。您也可以使用在遠程主機上運行的端口掃描器(或者可以重新路由數據包的端口掃描器)......雖然有人可能會注意到這一點。 – 2012-02-28 22:24:08

+0

這通常是不可能的,除非您可以讓防火牆另一端的客戶端與您合作進行測試。問防火牆管理員會更快。防火牆通常不會自動告訴你他們的設置。 – DNA 2012-02-28 22:28:37

回答

2

這不是手動的,但有點Java之外,但你可以運行NMAP,然後讀取結果到Java。這將幫助您瞭解哪些端口是開放的。

+0

有用的提示,但我不知道如何做到這一點......我想我會讓人們手動做這個。謝謝 – MrDrProfessorTyler 2012-02-28 23:27:58

+0

研究了一下如何在java中運行系統命令,然後只是閱讀nmap中的文檔。其實很簡單。試試吧。 – 2012-02-28 23:46:08

1

如果您想要使用Java和Nmap,您可以使用nmap4j.sourceforge.net,它是一個用於運行Nmap的Java API,並將結果解析爲Java對象。

相關問題