2012-02-28 29 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对象。

相关问题