如何获取本地机器的IPv4和IPv6地址?

Mat*_*att 4 .net c# windows-applications

我正在开发一个Windows应用程序,我需要找到本地机器的IPv4和IPv6地址.操作系统可以是XP或Windows 7.

我得到了一个获取MAC地址的解决方案,

string GetMACAddress()
{
    var macAddr =
        (
            from nic in NetworkInterface.GetAllNetworkInterfaces()
            where nic.OperationalStatus == OperationalStatus.Up
            select nic.GetPhysicalAddress().ToString()
        ).FirstOrDefault();

    return macAddr.ToString();
}
Run Code Online (Sandbox Code Playgroud)

这适用于所有操作系统.

获取适用于XP和WINDOWS 7的IPv4和IPv6地址的正确方法是什么?

Hab*_*bib 6

string strHostName = System.Net.Dns.GetHostName();;
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
Console.WriteLine(addr[addr.Length-1].ToString());
if (addr[0].AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
            {
                Console.WriteLine(addr[0].ToString()); //ipv6
            }
Run Code Online (Sandbox Code Playgroud)