2017/02/06

[C#] Get the IP Address

一般要看電腦的IP位址,通常都會直接到命令提示字元下指令查詢
win+R -> 輸入cmd -> 輸入ipconfig
找到IP位址之後再去改code或是...之類的
但有一些方法可以直接在自己的APP上,直接顯示電腦的IP位址



IPHostEntry IPHost = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
foreach (var ipAddress in IPHost.AddressList)
{
    txt.Text = ipAddress.ToString();
}

但是這個方法顯示出來的IP格式怪怪的,它是長成這樣 2001:1:9d39:6 ...
所以有另一種方法可以把顯示格式變成平常看的IPv4的樣子

// return the first IPv4, non-dynamic/link-local, non-loopback address
public static IPAddress GetIPAddress()
{
    IPAddress[] hostAddresses = Dns.GetHostAddresses("");
    foreach (IPAddress hostAddress in hostAddresses)
    {
        if (hostAddress.AddressFamily == AddressFamily.InterNetwork &&
            !IPAddress.IsLoopback(hostAddress) &&  // ignore loopback addresses
            !hostAddress.ToString().StartsWith("169.254."))  // ignore link-local addresses
            return hostAddress;
    }
    return null; // or IPAddress.None if you prefer
}


然後用WPF的label工具來顯示
label.Content = "My IP address: " + GetIPAddress();

這樣就可以在APP上直接顯示IP位址,格式也是熟悉的IPv4了

沒有留言:

張貼留言