Как проверить FTP-соединение?

Есть ли простой и быстрый способ проверить, что FTP-соединение (включая хост, порт, имя пользователя и пароль) действительно и работает? Я использую C #. Спасибо.


Вы можете попробовать использовать System.Net.FtpWebRequest , а затем просто проверить GetResponseStream метод.

Так что-нибудь вроде

  System.Net.FtpWebRequest myFTP = new System.Net.FtpWebRequest//Добавьте свои учетные данные и портал {myFTP  .GetResponseStream (); //устанавливаем некоторые флаги} catch ex {//обрабатываем его, когда он не работает}  

17

попробуйте что-нибудь вроде этого:

  FtpWebRequest requestDir = (FtpWebRequest) FtpWebRequest.Create ("ftp:// ftp.google.com "); requestDir.Credentials = new NetworkCredential (" имя пользователя "," пароль "); попробуйте {WebResponse response = requestDir.GetResponse (); //устанавливаем свой флаг} catch {}  

Улучшите этот ответ
отредактировано 12 октября ’20 в 8:25
Ankush Madankar
3,21633 золотых знака3232 серебряных знака6969 бронзовых знаков
ответил 13 июля ’10 в 17:19
  • Я реализовал нечто похожее на ваше решение anishMarokey, однако это, похоже, не работает, когда дело касается защищенных ftp-сайтов. Есть ли у вас какие-нибудь представления о том, как проверить соединение на ftps? Благодарю. — Крис Митчелл, 29 сен., 14:42
  • 3
    Чтобы этот код работал, вам также необходимо установить метод запроса (например, requestDir.Method = WebRequestMethods.Ftp.ListDirectoryDetails). — Лори 25 сен ’13 в 13:03
  • @ChrisMitchell .NET еще не поддерживает SFTP, но есть библиотеки, такие как SSH.NET, которые имеют эту функциональность, — Лори 25 сен 2013, 13:09
добавить комментарий |

попробуйте что-нибудь вроде этого:

  FtpWebRequest requestDir = (FtpWebRequest) FtpWebRequest.Create  ("ftp://ftp.google.com"); requestDir.Credentials = new NetworkCredential ("имя пользователя", "пароль"); попробуйте {WebResponse response = requestDir.GetResponse (); //устанавливаем свой флаг} catch {}  

7

/* HolaEste es el metodo que utilizo si conoces uno mejor hasmelo saberUbirajara 100% Mexicanoisc.erthal@gmail. com */

  private bool isValidConnection (строковый URL, строковый пользователь, строковый пароль) {попробуйте {FtpWebRequest request = (FtpWebRequest) WebRequest.Create (url);  request.Method = WebRequestMethods.Ftp.ListDirectory;  request.Credentials = новый NetworkCredential (пользователь, пароль);  request.GetResponse ();  } catch (WebException ex) {return false;  } вернуть истину;  }  

Улучшите этот ответ
17 нояб. в 18:18
  • 10
    StackOverflow использует английский как основной язык. — Люк Джошуа Парк 20 дек. ’15 в 4:26
добавить комментарий |

/* HolaEste es el metodo que utilizo si conoces uno mejor hasmelo saberUbirajara 100% Mexicanoisc.erthal@gmail.com */

  private bool isValidConnection (строковый URL, строковый пользователь, строковый пароль) {попробуйте {FtpWebRequest request = (FtpWebRequest) WebRequest.Create (url);  request.Method = WebRequestMethods.Ftp.ListDirectory;  request.Credentials = новый NetworkCredential (пользователь, пароль);  request.GetResponse ();  } catch (WebException ex) {return false;  } вернуть истину;  }  

2

Используйте либо System.Net.FtpWebRequest или System.Net.WebRequestMethods.Ftp, чтобы проверить соединение с использованием учетных данных для входа. Если FTP-запрос по какой-либо причине завершился неудачно, будет возвращено соответствующее сообщение об ошибке с указанием причины проблемы (аутентификация, невозможность подключения и т. Д.)

Улучшите этот ответ
13 июля ’10 в 4:57
добавить комментарий |

Используйте либо System.Net.FtpWebRequest, либо System.Net.WebRequestMethods.Ftp, чтобы проверить соединение, используя свои учетные данные для входа. Если FTP-запрос не выполняется по какой-либо причине, будет возвращено соответствующее сообщение об ошибке с указанием причины проблемы (аутентификация, невозможность подключения и т. Д.)


1

Это может быть полезно.

  общедоступная задача async   ConnectAsync (строковый хост, строковый пользователь, строковый пароль) {попробуйте {FtpWebRequest request = (FtpWebRequest) WebRequest.Create (host);  request.Credentials = новый NetworkCredential (пользователь, пароль);  request.UseBinary = true;  request.UsePassive = true;  запрос. KeepAlive = false; //полезно только для проверки соединения.  request.Method = WebRequestMethods.Ftp.ListDirectory;  FtpWebResponse response = (FtpWebResponse) await _ftpRequest.GetResponseAsync ();  вернуть истину;  } catch (исключение) {return false;  }}  

Улучшите этот ответ
ответил 30 сен. ’19 в 11:48
добавить комментарий |

Это может быть полезно.

  public async Task  ConnectAsync (string  хост, строковый пользователь, строковый пароль) {попробуйте {FtpWebRequest request = (FtpWebRequest) WebRequest.Create (host);  request.Credentials = новый NetworkCredential (пользователь, пароль);  request.UseBinary = true;  request.UsePassive = true;  request.KeepAlive = false; //полезно только для проверки соединения.  request.Method = WebRequestMethods.Ftp.ListDirectory;  FtpWebResponse response = (FtpWebResponse) await _ftpRequest.GetResponseAsync ();  вернуть истину;  } catch (исключение) {return false;  }}  

-2

Это с сайта msdn для отображения файлов с сервера

  public static bool DisplayFileFromServer (Uri serverUri) {//Параметр serverUri должен начинаться со схемы ftp://.  if (serverUri.Scheme! = Uri.UriSchemeFtp) {return false;}//Получить объект, используемый для связи с сервером .WebClient request = new WebClient ();//В этом примере предполагается, что FTP-сайт использует анонимный вход в систему.request.  Учетные данные = новый NetworkCredential («анонимный», «janeDoe@contoso.com»); попробуйте {byte [] newFileData = request.DownloadData (serverUri.ToString ());  строка fileString = System.Text.Encoding.UTF8.GetString (newFileData);  Console.WriteLine (fileString);} catch (WebException e) {Console.WriteLine (e.ToString ());} return true;}  

Улучшить этот ответ
ответил 29 ноября ’12 в 15:48
добавить комментарий |

Это с сайта msdn для отображения файлов с сервера

  public static  bool DisplayFileFromServer (Uri serverUri) {//Параметр serverUri должен начинаться со схемы ftp://.  if (serverUri.Scheme! = Uri.UriSchemeFtp) {return false;}//Получить объект, используемый для связи с сервером .WebClient request = new WebClient ();//В этом примере предполагается, что FTP-сайт использует анонимный вход в систему. запрос. Учетные данные = новый NetworkCredential («анонимный», «janeDoe@contoso.com»); попробуйте {byte [] newFileData = request.DownloadData (serverUri.ToString ());  строка fileString = System.Text.Encoding.UTF8.GetString (newFileData);  Console.WriteLine (fileString);} catch (WebException e) {Console.WriteLine (e.ToString ());} return true;}  


Проверить ftp-соединение с помощью PHP · GitHub

php
$ host = ‘example.com’;
$ password = ‘pass’;
$ username = ‘username’;
попробовать {
$ result = checkFtp ($ host, $ username, $ password);
} catch (исключение $ e) {
$ result = $ e-> getMessage ();
}
if ( $ result) {
print ‘ok’;
} else {
print ‘fail’;
}
функция checkFtp ( $ host, $ username, $ password, $ port = 21, $ timeout = 10) {
$ con = ftp_connect ($ host, $ port, $ timeout);
if (false === $ con) {
throw new Exception (‘Невозможно подключиться к FTP-серверу.’);
}
$ loggedIn = ftp_login ($ con, $ username, $ password);
ftp_close ($ con);
if (true === $ loggedIn) {
return true;
} else {
throw new Exception (‘Невозможно войти в систему.’);
}
}

Оцените статью
logicle.ru
Добавить комментарий