您的位置:首页 > 编程语言 > Java开发

Java编写的端口的扫描程序(web端口80和ftp端口21)

2013-06-04 13:06 603 查看
1.数据的连接代码

package spider;

import java.sql.*;

public class Conn 
{
	public static Connection connection(){
	Connection conn=null;
	
	String url="jdbc:mysql://192.168.21.52:3306/spider";
	String root="zpp";
	String pwd="111";

	try{
	
	//加载驱动
	Class.forName("com.mysql.jdbc.Driver");
	
	conn=DriverManager.getConnection(url,root,pwd);

	
	}catch(Exception  e){
	e.printStackTrace();
	}
	
	return conn;
	
	}
}


2、开启线程进行验证(原本想使用多线程实现的,但是不行)

package spider;

import java.sql.*;
import java.net.*;
import java.io.*;

public class  StartIP extends Thread
{	

	long starttime=System.currentTimeMillis();	
	private Connection conn=null;

	private Statement stmt=null;
	
	String ip="";
	String sql="";
	int [] port={80,21};
	Socket socket=null;

	
	public StartIP(){
	//this.ip=ip;
	conn=Conn.connection();
	
	}

	//存储web  ip
	public   void Savewebip(String ip){

	try{
	//System.out.println(ip);
	stmt=conn.createStatement();
	sql="insert into spider2(ip,port)  values('"+ip+"','"+port[0]+"')";
	stmt.executeUpdate(sql);

	}
	catch(SQLException ew){
	System.out.println(ew.toString());
	}
	
	
	}

	//存储ftp   ip
	public   void Saveftpip(String ip){

	try{
	//System.out.println(ip);
	stmt=conn.createStatement();
	sql="insert into spider1(ip,port)  values('"+ip+"','"+port[1]+"')";
	stmt.executeUpdate(sql);

	}
	catch(SQLException ew){
	System.out.println(ew.toString());
	}
	
	
	}
	

	//验证ip的80端口是否打开
	public void SouwebIP(String ip){
	
	try{
	InetAddress inet=InetAddress.getByName(ip);
	InetSocketAddress  inetsocket=new InetSocketAddress(ip,port[0]);
	 socket=new Socket();
	 socket.connect(inetsocket,1000);
	// 
	 System.out.println(ip);
	socket.close();
	Savewebip(ip);
	}
	catch(IOException e){
		System.out.println(ip+"...web没有打开。。。");	
		try{
		socket.close();
		}
		catch(IOException r){
		r.printStackTrace();
		}
		e.printStackTrace();
	}
	finally{
	
	try{
		if(socket!=null)
		socket.close();
	}catch(IOException er){
	System.out.println("关闭。。。");
	//er.printStackTrace();
	
	}
	}
	
}

	//验证ip的21端口是否打开
	public void SouftpIP(String ip){
	
	try{
	InetAddress inet=InetAddress.getByName(ip);
	InetSocketAddress  inetsocket=new InetSocketAddress(ip,port[1]);
	 socket=new Socket();
	 socket.connect(inetsocket,1000);
	// 
	 System.out.println(ip);
	socket.close();
	Saveftpip(ip);
	}
	catch(IOException e){
		System.out.println(ip+"...ftp没有打开。。。");	
		try{
		socket.close();
		}
		catch(IOException r){
		r.printStackTrace();
		}
		e.printStackTrace();
	}
	finally{
	
	try{
		if(socket!=null)
		socket.close();
	}catch(IOException er){
	System.out.println("关闭。。。");
	//er.printStackTrace();
	
	}
	}
	
}
	
	
	
	

	//产生ip地址

	public    void MakeIp(){
	
	String ip1="";
	String ip2="";
	String ip="";
	//String sql="";
	//Socket socket=null;

	for(int i=0;i<255;i++){
 
	for(int j=0;j<255;j++){
	
	 ip1=String.valueOf(i);
	 ip2=String.valueOf(j);
	 ip="192.168."+ip1+"."+ip2;
	 //ip="192.168.21."+ip2;
	 
	SouwebIP(ip);
	SouftpIP(ip);
	//ping(ip);
	
	
	}
	}
	

	//记录扫描的时间
	long endtime=System.currentTimeMillis();
	
	long totaltime=endtime-starttime;
	
	System.out.println("total...."+totaltime+"ms");
	}

	public synchronized void run(){
	
	MakeIp();

}
	
}


3.主类

开启线程进行扫描

package spider;

import java.net.*;
import java.io.*;
import java.sql.*;

public class IP
{

public IP(){
	
	
	StartIP startIp1=new StartIP();
	startIp1.start();

}

public static void main(String [] args){
new IP();

}

}


这个是个人,参考相关的代码,写的,有什么错误,请指教

,大家共同学习啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: