2013-02-20 110 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