端口扫描是不少黑客进行网络攻击第一步要做的事情。
扫描你的mysql服务3306端口是不是很恐怖啊。扫描你的22 Linux服务器远程登陆端口。恐怖吧。月小升觉得这个办法也可以用来监测自己的服务器是否有对外不该公开的端口被自己公开了。
package com.javaer.examples.socket;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class ScanPort extends Thread{
private static int i=1;
public void run(){
while(i< 65536){
int temp=i;
try{
Socket client = new Socket("baidu.com",temp);
//如果client不为空,说明该端口对外开放。
//否则该端口没有在监听的服务,或者是该端口对外屏蔽。
if(client!=null){
System.out.println("Port :"+temp+" is OK!!!");
}
}catch(UnknownHostException e1){
}catch(IOException e2){
}
//要确保每个端口都被扫描到。i是共享数据,需要进行同步控制。
synchronized (ScanPort.class){
i++;
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
for(int i=0;i<100;i++){
new ScanPort().start();
}
}
}
You must be logged in to post a comment.
太神奇了。这个简直是黑客啊。
黑客仅仅是第一步,扫描,然后才攻击
不错,服务器安全是重中之重。
扫描器是做么优秀的一个作品,怎么会这么简单!
简单表示原理而已 :)
这得打印多长啊。