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();
}
}
这个是个人,参考相关的代码,写的,有什么错误,请指教 ,大家共同学习啊