summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/App.java
blob: 5d52065b95de1b4ab2c2458f10d3ceaaffd15360 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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<Integer> 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<Integer> 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 <host> 

            Examples:
              java -jar scanner.jar localhost
              java -jar scanner.jar fd00::1 
            """);
        System.exit(1);
    }
}