c# - SFTP 连接 DNS 问题 - System.Net.Sockets.SocketException : The requested name is valid, 但未找到请求类型的数据

标签 c# dns sftp sharpssh reverse-dns

我正在尝试通过 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 连接正常工作。

最佳答案

通过检查所有可能性找到了解决方案,这就是我设法建立连接的方式: 首先,我的 ftpAddress 设置为外部/内部 IP。

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

看来我的错误与 DNS<>revDNS 无关,而是由于我尝试调用的主机地址中有额外的“\”符号。

关于c# - SFTP 连接 DNS 问题 - System.Net.Sockets.SocketException : The requested name is valid, 但未找到请求类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935839/

相关文章:

windows - PHPStorm - 无效的后代文件名

linux - 如何将多个 IP 地址映射到单个服务器的文件

url - 如何为具有多个域及其内容的 Gatsby 网站提供服务?

java - JSch SFTP 文件下载

c# - 构建发布时,C# 中的 Debug.WriteLine 输出到哪里?

linux - 1 个域.. 2 个服务器和 2 个应用程序

php - WordPress 编辑器不更新文件 : Unable to communicate back with site to check for fatal errors

c# - 运算符 ">"不能应用于类型 'ulong' 和 'int'

c# - 结合 .net 正则表达式

c# - 如何从字符串中删除除第一次出现的字符以外的所有字符?