2014-07-22 123 views
-1

我正在使用FTPWebRequest和FTPWebResponse連接到FTP服務器。此FTP服務器檢查來自客戶端的失敗登錄嘗試次數,並且如果在指定時間段內登錄失敗次數過多,則會臨時禁止客戶端。對於初始登錄失敗嘗試以及任何被禁止後的嘗試,我得到捕獲FTP錯誤消息

「遠程服務器返回錯誤:(530)未登錄。」

如果我嘗試(即在DOS提示符下)被禁止後,手動連接到FTP服務器,我得到

c:\> ftp a.b.c.d 
Connected to a.b.c.d. 
530 Host w.x.y.z has been temporarily banned from the FTP server. 
Connection closed by remote host. 

w.x.y.z是我的本地系統的IP地址。

有什麼辦法,我可以捕捉消息

的文本「530主機w.x.y.z已暫時從FTP服務器禁止。」

我需要能夠區分常規失敗的登錄嘗試(「未登錄」)和被禁止的結果之一,以及我能看到的唯一方法來捕獲並檢查錯誤信息。

+1

發佈您的代碼。 – CathalMF

+0

如果我有代碼,那麼我會知道如何去做... – JeffR

+2

發佈你的代碼,你如何執行FTPWebRequest和響應! – CathalMF

回答

1

好在這是調用GetResponse時拋出的WebException有它裏面的FtpWebResponse,而這正是你想要什麼:

try 
{ 
    FtpWebResponse response = (FtpWebResponse) request.GetResponse(); 
} 
catch (WebException ex) 
{ 
    if (ex.Response != null) 
     Console.WriteLine(((FtpWebResponse)ex.Response).StatusDescription); 
} 
+0

謝謝 - 完美!正是我需要的。並沒有代碼完成... – JeffR

+0

不客氣的朋友。我想我們在這裏互相幫助:) – Alireza

相關問題