核心代碼:
lstbxLocalInfo.Items.Clear();
string name = Dns.GetHostName();
//ip相關
IPHostEntry ipepLocal = Dns.GetHostEntry(name);
lstbxLocalInfo.Items.Add("本機主機名:" + name);
lstbxLocalInfo.Items.Add("本機所有IP地址:\n");
foreach (IPAddress ip in ipepLocal.AddressList)
{
lstbxLocalInfo.Items.Add(ip);
}
IPAddress localip = IPAddress.Parse("127.0.0.1");
IPEndPoint ipep = new IPEndPoint(localip, 80);
lstbxLocalInfo.Items.Add("IP端點:" + ipep.ToString());
lstbxLocalInfo.Items.Add("IP端口:" + ipep.Port);
lstbxLocalInfo.Items.Add("IP地址:" + ipep.Address);
lstbxLocalInfo.Items.Add("IP地址簇:" + ipep.AddressFamily);
lstbxLocalInfo.Items.Add("可分配端口最大值:" + IPEndPoint.MaxPort);
lstbxLocalInfo.Items.Add("可分配端口最小值:" + IPEndPoint.MinPort);
//mac相關
IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
lstbxLocalInfo.Items.Add(String.Format("Interface information for {0}.{1}", computerProperties.HostName, computerProperties.DomainName));
foreach (NetworkInterface adapter in nics)
{
IPInterfaceProperties properties = adapter.GetIPProperties();
lstbxLocalInfo.Items.Add(adapter.Description);
//lstbxLocalInfo.Items.Add(String.Empty.PadLeft(adapter.Description.Length, '='));
lstbxLocalInfo.Items.Add(String.Format("Interface type : {0}",adapter.NetworkInterfaceType));
lstbxLocalInfo.Items.Add(String.Format("Physical Address : {0}",adapter.GetPhysicalAddress().ToString()));
lstbxLocalInfo.Items.Add(String.Format("Is receive only : {0}", adapter.IsReceiveOnly));
lstbxLocalInfo.Items.Add(String.Format("Multicast : {0}", adapter.SupportsMulticast));
}
this.lstbxRemoteInfo.Items.Clear();
IPHostEntry remoteHost = Dns.GetHostEntry(txtRmoteIP.Text.Trim());
IPAddress[] remoteIP = remoteHost.AddressList;
IPEndPoint ipep;
foreach (IPAddress ip in remoteIP)
{
ipep = new IPEndPoint(ip, 80);
lstbxRemoteInfo.Items.Add(ipep);
}