2010-07-13 42 views
6

Có cách nào đơn giản, nhanh chóng để kiểm tra xem kết nối FTP (bao gồm máy chủ, cổng, tên người dùng và mật khẩu) có hợp lệ và hoạt động không? Tôi đang sử dụng C#. Cảm ơn bạn.Làm thế nào để kiểm tra kết nối FTP?

+2

Hãy chắc chắn chấp nhận câu trả lời thích hợp cho câu trả lời này. –

Trả lời

5

Bạn có thể thử sử dụng System.Net.FtpWebRequest và sau đó chỉ cần kiểm tra các phương pháp GetResponseStream.

Vì vậy, một cái gì đó giống như

System.Net.FtpWebRequest myFTP = new System.Net.FtpWebRequest 

//Add your credentials and ports 

try 
{ 
    myFTP.GetResponseStream(); 
    //set some flags 
} 
catch ex 
{ 
    //handle it when it is not working 
} 
+3

mã của bạn như là sẽ không biên dịch – sarsnake

1

Sử dụng System.Net.FtpWebRequest hoặc System.Net.WebRequestMethods.Ftp để kiểm tra kết nối của bạn bằng thông tin đăng nhập của bạn. Nếu yêu cầu FTP không vì lý do gì được thông báo lỗi thích hợp sẽ được trả lại cho thấy những gì vấn đề là (xác thực, không thể kết nối, vv ...)

12

thử một cái gì đó như thế này:

 FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://ftp.google.com"); 
     requestDir.Credentials = new NetworkCredential("username", "password"); 
     try 
     { 
      WebResponse response = requestDir.GetResponse(); 
      //set your flag 
     } 
     catch 
     { 
     } 
+0

Tôi đã thực hiện một cái gì đó tương tự như giải pháp anishMarokey của bạn, tuy nhiên điều này dường như thất bại khi nói đến các trang web ftp an toàn. Bạn có hiểu biết về cách kiểm tra kết nối cho ftps không? Cảm ơn. –

+1

Để mã này hoạt động, bạn cũng cần phải đặt phương thức yêu cầu (ví dụ: requestDir.Method = WebRequestMethods.Ftp.ListDirectoryDetails). – laurie

+0

@ChrisMitchell .NET chưa hỗ trợ SFTP, nhưng có các thư viện như [SSH.NET] (http://sshnet.codeplex.com/) có chức năng đó – laurie

4

/* Hola Este es el metodo que utilizo si conoces uno mejor hasmelo saber Ubirajara 100% Mexicano ISC. [email protected] */

private bool isValidConnection(string url, string user, string password) 
     { 
      try 
      { 
       FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url); 
       request.Method = WebRequestMethods.Ftp.ListDirectory; 
       request.Credentials = new NetworkCredential(user, password); 
       request.GetResponse(); 
      } 
      catch(WebException ex) 
      { 
       return false; 
      } 
      return true; 
     } 
+5

StackOverflow sử dụng tiếng Anh làm ngôn ngữ chính. –

-2

Đây là từ trang msdn đến các tệp ngoại giao từ máy chủ

public static bool DisplayFileFromServer(Uri serverUri) 
{ 
// The serverUri parameter should start with the ftp:// scheme. 
if (serverUri.Scheme != Uri.UriSchemeFtp) 
{ 
    return false; 
} 
// Get the object used to communicate with the server. 
WebClient request = new WebClient(); 

// This example assumes the FTP site uses anonymous logon. 
request.Credentials = new NetworkCredential ("anonymous","[email protected]"); 
try 
{ 
    byte [] newFileData = request.DownloadData (serverUri.ToString()); 
    string fileString = System.Text.Encoding.UTF8.GetString(newFileData); 
    Console.WriteLine(fileString); 
} 
catch (WebException e) 
{ 
    Console.WriteLine(e.ToString()); 
} 
return true; 
} 
Các vấn đề liên quan