可以用.Net的DNS类来获取一个主机名或一个给定主机的IP地址。要想在程序中使用DNS类,就需要包含System.Net: 
Include System.Net Reference 
比如说想获取http://www.mindcracker.com/的IP地址,以下代码就会完成这个任务: 
// Call DNS.GetHostName to get IPHostEntry and get the IP address list. IPHostEntry ipEntry = DNS.GetHostByName ("www.mindcracker.com"); 
IPAddress [] IpAddr = ipEntry.AddressList; 
for (int i = 0; i < IpAddr.Length; i++) 

Console.WriteLine ("IP Address {0}: {1} ", i, IpAddr[i].ToString ()); 

另外,使用无参数的GetHostName可以返回本地机器的主机名: 
string strHostName = DNS.GetHostName (); 
然后将这个主机名作为参数传递给GetHostByName,就可以获取本地机器的IP地址信息。

解决方案 »

  1.   

    先用GetHostName()方法获得主机名信息
    再用resolve()获得IP地址
    或用GetHostByName()返回一个IPHostEntry结构,其中的AddressList成员包括IP地址信息
      

  2.   

    private static string getIPAddress ( )
    {
    System.Net.IPAddress addr;
    // 获得本机局域网IP地址
    addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostName ( ) ) .AddressList [0].Address ) ;
    return addr.ToString ( ) ;
    }
      

  3.   

    sck为你打开的socket,通过
    IPAddress.Parse(((IPEndPoint)sck.LocalEndPoint).Address.ToString()
    取得当前socket使用的IP地址所有的C#还没有想出来,但以前曾经用一些api来读取本机上所有的IP地址,不过现在想不起来了
      

  4.   

    http://expert.csdn.net/Expert/topicview.asp?id=1575532