C# · 12月 27, 2021

在C#中从DNS解析IP地址

这个问题在这里已经有一个答案:> Cant parse domain into IP in C#?6
我正在尝试一个TCP套接字连接到一个IP地址.我可以通过直接解析IP地址来做到这一点: IPAddress ipAddress = IPAddress.Parse(“192.168.1.123”);IPEndPoint remoteEP = new IPEndPoint(ipAddress,80);// Create a TCP/IP socket.Socket sender = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); // This works!

但是,我无法弄清楚如何将这个IP地址从DNS字符串中去除.我尝试过以下各种组合:

IPAddress ipAddress = Dns.Resolve(“www.mydns.org”); // No diceIPAddress ipAddress = Dns.GetHostEntry(“www.mydns.org”); // NadaIPAddress ipAddress = IPAddress.Parse(Dns.Resolve(“www.mydns.org”)); // So many errors…IPAddress ipAddress = IPAddress.Parse(Dns.Resolve(“www.mydns.org”).toString()); // WTh is this attempt anyway?

你们中的任何一个善良的人都有一个提示来帮助我从DNS中挤出一个IPAddress?

解决方法 foreach (IPAddress ip in Dns.GetHostAddresses(“www.mydns.org”)){ Console.WriteLine(ip.ToString());}

或者只是IPAddress address = Dns.GetHostAddresses(“www.mydns.org”)[0];如果你只想要第一个.