Я принимаю бесплатный онлайн курс по кибербезопасности здесь https://cybersecuritybase.github.io/ява сканер портов не работает
Par курса они хотят создать сканер 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;
}
}
Часть Я создал это для петли с гнездом сканирования. Он всегда распечатывает ни один найденный независимо от того, какой адрес я предоставляю, и я не уверен, как это исправить. любые указатели было бы здорово, я искал и от того, что я вижу, ничего не выделяется так (по крайней мере, я надеюсь)
им делать, что конечно, и я не знаю s ** t о java :) im, имеющем ошибку «java.net.ConnectException: Connection reject: connect», что означает, что мой сервер не работает (после его поиска), такая проблема? – rockStar
Что это за 50000 в 'socket.connect()'? Не просто сказать «порт», поскольку порт уже находится в 'InetSocketAddress()'. Почему эта часть не написана так: 'socket.connect (новый InetSocketAddress (адрес, порт), порт);'? – atonus