diff options
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/Scanner.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java index 5a6ccbb..4ac60b1 100644 --- a/src/main/java/com/it_jaros/jscanner/Scanner.java +++ b/src/main/java/com/it_jaros/jscanner/Scanner.java @@ -24,6 +24,7 @@ public class Scanner implements AutoCloseable { private volatile boolean cancelled = false; private final Semaphore socketLimit; + private final boolean bannerRecognition; private final boolean disableOnlineCheck; private final boolean quiet; private final int maxHostsLimit; @@ -38,9 +39,11 @@ public class Scanner implements AutoCloseable { int maxWorkersPerHost, int maxHostsLimit, boolean disableOnlineCheck, - boolean quiet + boolean quiet, + boolean bannerRecognition ) { this.delayInNanos = TimeUnit.MILLISECONDS.toNanos(Math.max(0, delayInMillis)); + this.bannerRecognition = bannerRecognition; this.disableOnlineCheck = disableOnlineCheck; this.maxHostsLimit = maxHostsLimit; this.maxWorkersPerHost = maxWorkersPerHost; @@ -50,7 +53,7 @@ public class Scanner implements AutoCloseable { } public Scanner(ScanOptions options) { - this(options.openSocketLimit(), options.timeoutInMillis(), options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck(), options.quiet()); + this(options.openSocketLimit(), options.timeoutInMillis(), options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck(), options.quiet(), options.bannerRecognition()); } public List<ScanResult> scan(ScanOptions options) { @@ -228,7 +231,10 @@ public class Scanner implements AutoCloseable { scanState.counter().inc(); try (Socket socket = new Socket()) { socket.connect(new InetSocketAddress(host, port), timeoutInMillis); - result.setBanner(getBanner(socket)); + + if (bannerRecognition) { + result.setBanner(getBanner(socket)); + } result.setState(PortState.OPEN); } catch (SocketTimeoutException ignored) { result.setState(PortState.FILTERED); |
