summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/App.java
blob: 49b50c02473abbcbf5d49a7127f0a30a8c419fbb (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) {
        try {
            ScanTarget target = (new CliParser()).parseArgs(args);
            Scanner scanner = new Scanner();
            List<Integer> openPorts = scanner.scanPorts(target);
            printResults(target, openPorts);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
            usageAndExit();
        } catch (Exception e) {
            System.err.println("Something went wrong");
        }
    }

    public static void printResults(ScanTarget address, List<Integer> openPorts) {
        System.out.println("Target: " + address.address());
        System.out.print("Ports:");
        openPorts.forEach((p) -> System.out.print(" " + p));
    }

    public static void usageAndExit() {
        System.err.println("""
                Usage:
                    java -jar scanner.jar [OPTIONS] <host>

                Options:
                    --delay: Waiting period in between connection attempts for a host
                    --connLimit: Socket Connection limit for a host

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