2017/02/06

[C#] Get the IP Address

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



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

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

  1. // return the first IPv4, non-dynamic/link-local, non-loopback address
  2. public static IPAddress GetIPAddress()
  3. {
  4. IPAddress[] hostAddresses = Dns.GetHostAddresses("");
  5. foreach (IPAddress hostAddress in hostAddresses)
  6. {
  7. if (hostAddress.AddressFamily == AddressFamily.InterNetwork &&
  8. !IPAddress.IsLoopback(hostAddress) && // ignore loopback addresses
  9. !hostAddress.ToString().StartsWith("169.254.")) // ignore link-local addresses
  10. return hostAddress;
  11. }
  12. return null; // or IPAddress.None if you prefer
  13. }
  14.  

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

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

沒有留言:

張貼留言