From f42cfda65a035a8708baf36b9c212d8b8e33516a Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Thu, 22 Jan 2026 21:05:16 +0100 Subject: Working version with semaphore counter and rate limiter --- src/main/java/com/it_jaros/networkScanner/App.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/com/it_jaros/networkScanner/App.java (limited to 'src/main/java/com/it_jaros/networkScanner/App.java') diff --git a/src/main/java/com/it_jaros/networkScanner/App.java b/src/main/java/com/it_jaros/networkScanner/App.java new file mode 100644 index 0000000..5d52065 --- /dev/null +++ b/src/main/java/com/it_jaros/networkScanner/App.java @@ -0,0 +1,41 @@ +package com.it_jaros.networkScanner; + +import java.util.List; + +public class App { + public static void main(String[] args) { + Scanner scanner = new Scanner(); + if (args.length < 1 || args[0] == "") { + usageAndExit(); + } + String target = args[0]; + System.out.printf( + "Scanning host=%s \n", + target); + + try (FdCounter fd = new FdCounter()) { + fd.start(20); // sample every 20ms + List openPorts = scanner.scanPorts(target, 10000); + printPorts(target, openPorts); + System.out.println("FD limit: " + fd.maxFds()); + System.out.println("Peak open FDs during scan: " + fd.peakOpenFds()); + } + } + + public static void printPorts(String address, List openPorts) { + System.out.println("Address:" + address); + openPorts.forEach((p) -> System.out.println("Open port: " + p)); + } + + private static void usageAndExit() { + System.err.println(""" + Usage: + java -jar scanner.jar + + Examples: + java -jar scanner.jar localhost + java -jar scanner.jar fd00::1 + """); + System.exit(1); + } +} -- cgit v1.3.1