我创建了一个具有多线程的端口扫描程序,可以扫描端口(从1开始并以数字递增)。 它可以在我的LAN上正常工作,但是如果我尝试扫描LAN之外的IP,则说所有端口都已关闭,我认为这是因为防火墙阻止了连接?
有什么方法可以检查端口是否在我的LAN之外的IP地址上打开了?这是我得到的代码
for (int port = startPort; port < 65535; port+=PortScanner.count)
{
Socket socket;
try
{
socket = new Socket();
socket.connect(new InetSocketAddress(host, port ), 500);
openPorts.add(port);
foundPort = true;
String temp = "Port " + port + " is open.\n";
System.out.write(temp.getBytes());
socket.close();
}
catch (IOException ioEx)
{
System.out.println("Port " + port + " is closed");
}
}
Thread.yield();
答案 0 :(得分:1)
[1] https://www.webopedia.com/quick_ref/portnumbers.asp
[2] https://luminati.io/proxy-networks/residential-ips
[3] Fastest way to scan ports with Java
答案 1 :(得分:-1)
在进行测试时以及实际运行扫描仪时,我建议您使用代理服务,以便您了解问题发生的时间和地点(如果问题仍然存在)。您可以找到许多在这种情况下有用的代理提供程序,但我建议您检查一下:
在测试各种程序,机器人程序,扫描仪,工具等方面,它们提供了很多功能,工作迅速且非常出色。