java的端口扫描器不工作
问题描述:
我正在一个免费的在线课程,网络安全在这里,他们要你创建一个Java端口扫描过程的https://cybersecuritybase.github.io/java的端口扫描器不工作
面值他们提供的一些代码,并且添加了端口扫描部分和我遇到了问题。 Java不是我熟悉的语言,所以我觉得它很简单,但似乎无法解决它。
代码是在这里
package sec.portscanner;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.InetSocketAddress;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
import java.io.IOException;
public class PortScanner {
final static int MIN_PORT = 1024;
final static int MAX_PORT = 49151;
public static void main(String[] args) throws Exception {
Scanner reader = new Scanner(System.in);
System.out.println("Which address should I scan?");
String address = reader.nextLine();
System.out.println("Start at port?");
int start = Integer.parseInt(reader.nextLine());
System.out.println("End at port?");
int end = Integer.parseInt(reader.nextLine());
Set<Integer> ports = getAccessiblePorts(address, start, end);
System.out.println("");
if (ports.isEmpty()) {
System.out.println("None found :(");
} else {
System.out.println("Found:");
ports.stream().forEach(p -> System.out.println("\t" + p));
}
}
public static Set<Integer> getAccessiblePorts(String address, int start, int end) {
Set<Integer> accessiblePorts = new TreeSet<>();
start = Math.max(start, MIN_PORT);
end = Math.min(end, MAX_PORT);
for (int port = start; port <= end; port++)
{
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, port), 50000);
socket.close();
} catch(IOException e) {
System.out.println(e);
}
}
return accessiblePorts;
}
}
我创建的部分是for循环与插座扫描。无论我提供什么地址,它总是打印出没有找到,我不知道如何解决这个问题。任何指针将是巨大的我已搜查,并从我看到的没有什么脱颖而出错误的(至少我希望)
答
您不添加到accessiblePorts
设置
尝试
Socket socket = new Socket();
socket.connect(new InetSocketAddress(address, port), 50000);
socket.close();
accessiblePorts.add (port);
+0
真棒似乎工作谢谢我会确保这是我以后看。 – synking
IM这样做当然,我不知道s ** t关于java :)即时通讯有错误'java.net.ConnectException:连接被拒绝:连接',这意味着我的服务器没有运行(谷歌搜索后),你遇到这种问题呢? – rockStar
'socket.connect()'中的50000是什么?不要只说“端口”,因为端口已经在'InetSocketAddress()'中。为什么不是这样写的:'socket.connect(new InetSocketAddress(address,port),port);'? – atonus