Sunday, January 15, 2012

Java - Simple Port Scanner

 අද මම කියලා දෙන්න යන්නේ ජාවා වලින් සරල පෝර්ට් ස්කෑනර් PORT SCANNER එකක් හදා ගන්න විදිය. (මම මේක හදලා තියෙන්නෙ ඔක්කොම port(පෝර්ට්) එ කියන්නේ port (පෝර්ට්) 65536 ම ස්කෑන් කරන්න විදියට. කැමති කට්ටිය ඕනේ විදියට වෙනස් කරගන්න. )
මුලින්ම පහල තියන code එක notepad එකට paste කරගන්න. ඊට පස්සේ ඒ ෆයිල් එක TestScanner.java කියලා save(සේව්) කරගන්න. File type(ෆයිල් ටයිප්) එක විදියට All Files දෙන්න.
ඊට පස්සේ ඒ ෆයිල් එක compile කරලා run කරන්න.ජාවා ෆයිල් එකක් compile කරලා run කරන විදිය මම කලින් එකක කියලා දුන්නා ;)(මොකක් හරි අවුලක් තියනවනම් අහන්න )

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/**
*
* @author Thusitha
*/
public class TestScanner {

public static void main(String[] args) {
while (true) {
try {
System.out.println("Press 1 to find the IP Address of a host");
System.out.println("Press 2 to run the port scan");
System.out.println("Press 3 to exit");
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
String command = consoleReader.readLine();
if (command.equalsIgnoreCase("1")) {
System.out.println("please enter hostname");
String hostName = consoleReader.readLine();
System.out.println("Trying to find the IPAddresses of " + hostName);
getIPAddress(hostName);
} else if (command.equalsIgnoreCase("2")) {
System.out.println("please enter hostname");
String hostName = consoleReader.readLine();
System.out.println("Trying to find the open ports in " + hostName + ". This make take several minutes");
portScan(hostName);
} else if (command.equalsIgnoreCase("3")) {
System.exit(0);
} else {
command = consoleReader.readLine();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}

}

public static void portScan(String host) {
for (int i = 0; i < 65536; i++) {
try {
Socket socket = new Socket(host, i);
System.out.println("A server is listening on port " + i);
socket.close();
} catch (UnknownHostException ex) {
} catch (IOException ex) {
}
}
}

public static void getIPAddress(String host) throws UnknownHostException {
InetAddress[] hostAddress = InetAddress.getAllByName(host);
for (int i = 1; i < hostAddress.length; i++) {
System.out.println(hostAddress[i]);
}
}
}

No comments:

Post a Comment