使用 System.Net.Dns 類別解析網域名稱:
using System;
using System.Net;
using System.Net.Sockets;
namespace GetIpByDomain
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
if (args.Length <= 0)
{
Console.WriteLine("\nGetIpByDomain V1.0 by ∮明天去要飯 QQ:305725744\n");
Console.WriteLine("Usage:\n GetIpByDomain.exe \n");
Console.WriteLine("Example:\n GetIpByDomain.exe Www.ToEmpire.Com");
}
else
{
string strDomain = args[0];
IPHostEntry hostEntry = Dns.Resolve(strDomain);
IPEndPoint ipEndPoint = new IPEndPoint(hostEntry.AddressList[0], 0);
string ipAddress = ipEndPoint.Address.ToString();
Console.Write(ipAddress);
}
}
}
}
Dns.Resolve 回傳 IPHostEntry,其 AddressList 包含該網域對應的所有 IP 位址。AddressList[0])建立 IPEndPoint,再取得 Address.ToString()。AddressList 並處理 IPv4/IPv6 差異。此為簡單實現,有興趣者可自行擴充錯誤處理與多 IP 支援。