.NET Socket.Connect 将主机名解析为 IP 地址

Posted

技术标签:

【中文标题】.NET Socket.Connect 将主机名解析为 IP 地址【英文标题】:.NET Socket.Connect Resolve Host name to IP Address 【发布时间】:2011-05-07 06:44:49 【问题描述】:

我正在查看一些代码中的 .NET 套接字连接函数。 http://msdn.microsoft.com/en-us/library/d7ew360f.aspx 这个函数接受一个字符串作为参数,表示远程主机的名称。

我的问题是,套接字如何获取该远程主机的 IP 地址?它是执行 DNS 查找还是可以转到 Windows 主机文件? (Windows XP)

【问题讨论】:

我有一个关于这个帖子的工作***.com/questions/3481858/…你能联系我吗? 【参考方案1】:

使用Dns.GetHostAddresses(host);

一段实际代码如下:

public void Connect(string host, int port)
    // Checking parameters etc, removed.

     IPAddress[] addresses = Dns.GetHostAddresses(host);
     Connect(addresses,port);

因此,带有主机名的构造函数只是调用带有 IP 地址的构造函数。

有关 Dns.GetHostAddresses() 的文档,请参阅 http://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses.aspx。

【讨论】:

哪个,顺便说一句,将首先检查主机文件,然后尝试 DNS 查找。

以上是关于.NET Socket.Connect 将主机名解析为 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

反向tcp shell编写

Java和.NET下socket转换错误记录

为啥Java的socket.connect()会消耗100%的cpu资源?

socket connect() 被误认为是 QT connect()

Socket Connect问题

Flutter - Socket.Connect() - SocketException:操作系统错误:连接超时