Есть ли простой и быстрый способ проверить, что FTP-соединение (включая хост, порт, имя пользователя и пароль) действительно и работает? Я использую C #. Спасибо.
Вы можете попробовать использовать System.Net.FtpWebRequest
, а затем просто проверить GetResponseStream
метод.
Так что-нибудь вроде
System.Net.FtpWebRequest myFTP = new System.Net.FtpWebRequest//Добавьте свои учетные данные и портал {myFTP .GetResponseStream (); //устанавливаем некоторые флаги} catch ex {//обрабатываем его, когда он не работает}
попробуйте что-нибудь вроде этого:
FtpWebRequest requestDir = (FtpWebRequest) FtpWebRequest.Create ("ftp:// ftp.google.com "); requestDir.Credentials = new NetworkCredential (" имя пользователя "," пароль "); попробуйте {WebResponse response = requestDir.GetResponse (); //устанавливаем свой флаг} catch {}

-
Я реализовал нечто похожее на ваше решение 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 {}
/* 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; } вернуть истину; }
-
10StackOverflow использует английский как основной язык. — Люк Джошуа Парк 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; } вернуть истину; }
Используйте либо System.Net.FtpWebRequest или System.Net.WebRequestMethods.Ftp, чтобы проверить соединение с использованием учетных данных для входа. Если FTP-запрос по какой-либо причине завершился неудачно, будет возвращено соответствующее сообщение об ошибке с указанием причины проблемы (аутентификация, невозможность подключения и т. Д.)
Используйте либо System.Net.FtpWebRequest, либо System.Net.WebRequestMethods.Ftp, чтобы проверить соединение, используя свои учетные данные для входа. Если FTP-запрос не выполняется по какой-либо причине, будет возвращено соответствующее сообщение об ошибке с указанием причины проблемы (аутентификация, невозможность подключения и т. Д.)
Это может быть полезно.
общедоступная задача 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; }}

Это может быть полезно.
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; }}
Это с сайта 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;}
Это с сайта 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 (‘Невозможно войти в систему.’); | |
} | |
} |