Java编写的端口的扫描程序(web端口80和ftp端口21)
2013-06-04 13:06
603 查看
1.数据的连接代码
2、开启线程进行验证(原本想使用多线程实现的,但是不行)
3.主类
开启线程进行扫描
这个是个人,参考相关的代码,写的,有什么错误,请指教
,大家共同学习啊
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(); } }
这个是个人,参考相关的代码,写的,有什么错误,请指教
,大家共同学习啊
相关文章推荐
- C#编写的多线程端口扫描程序
- 端口扫描程序(java)
- C#编写的多线程端口扫描程序
- C#编写的多线程端口扫描程序
- 端口扫描程序[JAVA]
- Google Web Toolkit--用Java编写AJAX程序[摘]
- 用java编写多线程ftp断点下载文件程序
- Google Web Toolkit--用Java编写AJAX程序
- 用java编写多线程ftp断点下载文件程序
- 端口扫描程序(java)
- 端口扫描程序(java)
- 端口扫描程序(java)
- C#编写的多线程端口扫描程序
- 编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理
- 端口扫描程序(java)
- 如何编写简单的端口扫描程序:
- 编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理
- 扫描服务端口的Java程序
- 004_Eclipse编写第一个Java_Web程序
- 搭建java web开发环境、使用eclipse编写第一个java web程序