在撰寫C#程式中,我們通常可以透過如以下方法來取得本機的所有IP位址。
using System.Net; //加入
using System.Net.Sockets; //加入
/*------ 要先using上面兩個Class ------*/
/*------ Method Start ------*/
private static IPAddress[] getIPList()
{
return System.Net.Dns.GetHostEntry(string.Empty).AddressList;
}
/*------ Method End ------*/
但目前IPv4仍然是主流,IPv6僅是作業系統提供的功能,並未實際被使用,因此上述Method所取得的IP Address,還是不符合使用,如何將取得的IP Address僅列出IPv4的部分就需要加點工了,幸好.Net Framework中已經幫你解決了這個問題,我們僅需要透過Array.FindAll這個Method來查找IPAddress[] 中的AddressFamily符合AddressFamily.InterNetwork,只要符合的IP Address就是IPv4的位址。
using System.Net; //加入
using System.Net.Sockets; //加入
/*------ 要先using上面兩個Class ------*/
/*------ Method Start ------*/
private static IPAddress[] getIPv4List()
{
IPAddress[] ipv4Addresses;
ipv4Addresses = Array.FindAll(Dns.GetHostEntry(string.Empty).AddressList,
a => a.AddressFamily == AddressFamily.InterNetwork);
return ipv4Addresses;
}
/*------ Method End ------*/
留言