当前位置: 技术问答>java相关
如何用JAVA编写测试本机上是否有FTP服务?
来源: 互联网 发布时间:2015-08-24
本文导语: 【 在 ck 的大作中提到: 】 : 两个问题: : 如何用JAVA编写测试本机上是否有FTP服务? : : 如何用JAVA编写为本机FTP增加一个用户? 对第一个问题我用URL以及URLConnection类,用URLConnection的connect"ftp://...") 来测试FTP服务是否启...
【 在 ck 的大作中提到: 】
: 两个问题:
: 如何用JAVA编写测试本机上是否有FTP服务?
:
: 如何用JAVA编写为本机FTP增加一个用户?
对第一个问题我用URL以及URLConnection类,用URLConnection的connect"ftp://...")
来测试FTP服务是否启用。但如果当FTP服务是关闭的则connect()函数就一直阻塞,不返回。
|
可以试试这个方法:
import java.io.*;
public class RunFTP {
public static void main(String[] args) {
Process process;
try {
process = Runtime.getRuntime().exec("ftp 127.0.0.1"); //此处写机器ip
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
in.close();
reader.close();
process.destroy();
} catch(Exception e) {
e.printStackTrace();
}
}
}
你可以根据输出流来判断有没有 "Connected to 127.0.0.1"的字样,如果有则表示有ftp服务。
import java.io.*;
public class RunFTP {
public static void main(String[] args) {
Process process;
try {
process = Runtime.getRuntime().exec("ftp 127.0.0.1"); //此处写机器ip
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
in.close();
reader.close();
process.destroy();
} catch(Exception e) {
e.printStackTrace();
}
}
}
你可以根据输出流来判断有没有 "Connected to 127.0.0.1"的字样,如果有则表示有ftp服务。
|
Joeblackyang(野Heart) 的方法是调用系统的ftp命令(这个倒是linux/windows都有),不过,ftp这个东西,默认是连21的。所以不解决问题。
扫描端口吧,呵呵。找到了发控制命令,有格式的。ftp不太清楚,好像也是helo吧。你看看cuteftp的显示就知道了。
第二个功能到可以用:
process = Runtime.getRuntime().exec("xxxxx");
不过linux很简单,一句命令就能加,windows就不知道了,不熟。
扫描端口吧,呵呵。找到了发控制命令,有格式的。ftp不太清楚,好像也是helo吧。你看看cuteftp的显示就知道了。
第二个功能到可以用:
process = Runtime.getRuntime().exec("xxxxx");
不过linux很简单,一句命令就能加,windows就不知道了,不熟。
|
问题一:假如ftp服务端口不是21怎么办?
问题二:各种ftp服务器添加用户不一样,你只有根据不同的ftp服务器来写
问题二:各种ftp服务器添加用户不一样,你只有根据不同的ftp服务器来写
|
试试这个方法:
import java.io.*;
public class RunFTP {
public static void main(String[] args) {
Process process;
try {
process = Runtime.getRuntime().exec("ftp 127.0.0.1"); //这里写你的ip
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
in.close();
reader.close();
process.destroy();
} catch(Exception e) {
e.printStackTrace();
}
}
}
根据输出流来判断有没有"Connected to 127.0.0.1"的字样,有则表示存在ftp。增加用户可用同样的方法。如果当FTP服务是关闭好像没办法了。
import java.io.*;
public class RunFTP {
public static void main(String[] args) {
Process process;
try {
process = Runtime.getRuntime().exec("ftp 127.0.0.1"); //这里写你的ip
InputStream in = process.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
String line = "";
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
in.close();
reader.close();
process.destroy();
} catch(Exception e) {
e.printStackTrace();
}
}
}
根据输出流来判断有没有"Connected to 127.0.0.1"的字样,有则表示存在ftp。增加用户可用同样的方法。如果当FTP服务是关闭好像没办法了。
|
问题一:我根据RFC文档规范,编写一个简单的客户程序,连接成功即有此服务。
问题二:不懂。
问题二:不懂。
|
不是21端口,可以设置一个循环代码段扫描`~~xixi。