Hi, here’s a simple port scanner I wrote today in Java.
I needed to see something on my server, perhaps you can find it useful. I would say its pretty fast, you can tweak the number of threads and timeouts to adjust to your server/connection. I did’t do much testing on it, just a few tweaks and I was happy with the speed of it.
Good for learning a bit of Java (Threads, Sockets)
import java.net.*;
import java.util.*;
import java.io.*;
/**
By Gubatron - 05-18-2005
Simple Fast Port Scanner
*/
public class PortScanner implements Runnable {
int port;
static int MAX_PORT = 65536;
static int THREADS = 0;
static int MAX_THREADS = 250;
static int TIMEOUT = 50;
static String TARGET = new String("www.yahoo.com");
public PortScanner(int p) {
this.port = p;
};
public synchronized void run() {
THREADS++;
try {
Socket s = new Socket();
s.connect(new InetSocketAddress(TARGET,this.port),
TIMEOUT);
System.out.println("Port " + this.port + " is open");
s.close();
} catch (Exception e) {
}
THREADS--;
}
public static void main(String[] args) {
if (args.length > 0) {
TARGET = args[0];
}
System.out.println("PortScanner By Gubatron (May-2005)");
System.out.println("Scanning Ports On: " + TARGET + "n");
for (int i=21; i <= MAX_PORT; i++) {
if (PortScanner.THREADS > PortScanner.MAX_THREADS) {
i--;
continue;
}
PortScanner pokie = new PortScanner(i);
Thread t = new Thread(pokie);
t.start();
}
}
}