SFTP连接DNS问题 - System.Net.Sockets.SocketException:请求的名称有效,但未找到所请求类型的数据

Pio*_*lav 6 c# dns sftp reverse-dns sharpssh

我试图通过SharpSSH连接到ftp,如下所示:

Sftp Connection = new Sftp(ftpAddress, FTPLogin, FTPPasword);
Connection.Connect();
Run Code Online (Sandbox Code Playgroud)

这导致了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)
Run Code Online (Sandbox Code Playgroud)

经过一番搜索,我尝试了这段代码:

IPHostEntry ip = Dns.GetHostEntry(ftpAddress);
Run Code Online (Sandbox Code Playgroud)

我得到了SocketException:{没有这样的主机是已知的}

现在一些背景 - 我能够通过主机名和IP地址(外部和内部)与Filezilla连接到ftpAdress.当我> ping ftp.mydomain.com时,
我得到> 10.5.165.15
但是在> ping -a 10.5.165.15
我得到> ftpnew.mydomain.com

如果我是对的,我会因DNS <> revDNS问题而被拒绝.

我的问题是 - 我能做些什么让我的sftp连接正常工作.

Pio*_*lav 4

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

IPHostEntry ip = Dns.GetHostByName(ftpAddress);
Sftp Connection = new Sftp(ip.ToString(),FTPLogin,FTPPassword);
Connection.Connect()
Run Code Online (Sandbox Code Playgroud)

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