7

以下のように、SharpSSH 経由で ftp に接続しようとしています。

Sftp Connection = new Sftp(ftpAddress, FTPLogin, FTPPasword);
Connection.Connect();

その結果、JSchException が発生します。

System.Net.Sockets.SocketException: The requested name is valid, but no data of the requested type was found
at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
at System.Net.Dns.GetHostByName(String hostName)
at Tamir.SharpSsh.java.net.Socket..ctor(String host, Int32 port)
at Tamir.SharpSsh.jsch.Util.createSocket(String host, Int32 port, Int32 timeout)

いくつかの検索の後、私はこのコードを試しました:

IPHostEntry ip = Dns.GetHostEntry(ftpAddress);

そして、SocketException: {No such host is known} を取得しました

ここでいくつかの背景 - ホスト名と IP アドレス (外部と内部の両方) を介して Filezilla から ftpAdress に接続できます。>ping ftp.mydomain.com
を実行すると >10.5.165.15
が表示されますが、>ping -a 10.5.165.15
を実行すると > ftpnew.mydomain.comが表示されます

私が正しければ、DNS <> revDNS の問題のために拒否されています。

私の質問は、実際に sftp 接続を機能させるにはどうすればよいかということです。

4

5 に答える 5

4

すべての可能性をチェックすることで解決策が見つかりました。これが接続を確立する方法です。最初に、ftpAddress を外部/内部 IP に設定しました。

IPHostEntry ip = Dns.GetHostByName(ftpAddress);
Sftp Connection = new Sftp(ip.ToString(),FTPLogin,FTPPassword);
Connection.Connect()

私のエラーは DNS<>revDNS に関するものではなく、呼び出しようとしていたホスト アドレスの余分な '\' 記号が原因だったようです。

于 2012-12-19T13:53:15.967 に答える