如果要获取本机的IP地址,最简单的方法就是在命令提示符下面使用 “ipconfig” 命令。在C# 中,我们可以使用启动新 ipconfig 进程,然后读取输出的方法来实现。

public static string ipConfig()
{
    Process p = new Process();
    p.StartInfo.UseShellExecute = false; 
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.FileName = "ipconfig.exe";
    p.Start();
    p.WaitForExit();
    string output = p.StandardOutput.ReadToEnd();
    return output;
}

如果我们只需要 IP 地址本身,使用 ifconfig 就不太方便了,这时候我们可以用 System.Net 中的 IPHostEntry 来获取本地 IP 地址。

 public string GetLocalIP()
{
    IPHostEntry host;
    string localIP = "< Not available, please check your network seetings! >";
    host = Dns.GetHostEntry(Dns.GetHostName());
    foreach (IPAddress ip in host.AddressList)
    {
        if (ip.AddressFamily == AddressFamily.InterNetwork)
        {
            localIP = ip.ToString();
            break;
        }
    }
    return localIP;
}

参考资料

StackOverFlow, http://stackoverflow.com/questions/6803073/get-local-ip-address-c-sharp 

[Last Cited: 31-12-2014]