2013-02-20 125 views
3

我对网络编程非常陌生,所以如果我的问题过于简单,或者在其他地方回答,我可能错过了,请与我联系。Java用户名密码检查

有一个特定的服务器IP地址,需要验证我通常通过cmd行“ftp xyz0”进入我的u/n,输入我的密码,然后我进入。我想让我的程序请求用户凭证,检查他们是否可以登录到此服务器/ IP地址,如果可以,则返回true,否则返回false。我并不拥有这台服务器,也不知道真的很多,我只需要知道我的应用程序的最终用户是否可以访问它。我不想使用任何外部软件包,只有在可能的情况下才能使用标准java库中提供的软件包。任何帮助,这是表示赞赏。

我最近尝试:

URL url = new URL("ftp://1.0.0.0/"); 
URLConnection uc = url.openConnection(); 
String userpass = username + ":" + password; 
String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes()); 
uc.setRequestProperty ("Authorization", basicAuth); 
InputStream in = uc.getInputStream(); 

不知道到底它在做什么,但它似乎给相同的响应不管我把用户名和密码字符串。

+1

我知道你提到你不想使用外部软件包,但这里有一个类似的问题,使用Apache commons-net库,可能会很有用:http://stackoverflow.com/questions/13836989/properly-check -ftp-server-connection – nerdherd 2013-02-20 22:46:22

+1

这是实现HTTP基本身份验证的方式,但您尝试连接到FTP服务器。 – entonio 2013-02-20 22:47:38

回答

1

对于通过尝试连接到FTP服务器来检查登录,您将需要使用套接字并做大量的FTP协议和身份验证的解析。所以我建议使用Commons Net,这也可以让你通过HTTP/NNTP /等处理其他身份验证的东西。

+0

如果@Op仍然需要手工完成,那么他可以参考[FTPClient]的实现(http://commons.apache.org/net/api-3.2/org/apache/commons/net/ ftp/FTPClient.html) – prav 2013-02-20 22:54:13

+0

是的,他可以借用一些代码,但我想重新使用现有的东西会更容易。 – jdevelop 2013-02-20 22:56:57

+0

我在这个问题上做的每个搜索似乎都是使用apache commons net软件包的最简单的方法。看起来我不得不使用它,因为检查登录能力要简单得多。一旦连接,我在服务器上没有任何事情可做,它只是一个检查。感谢您的帮助,看起来如果没有外部包装,它会过于繁琐,而且会浪费时间。 – 2013-02-21 13:52:58