Home  >  Article  >  Backend Development  >  Sample code sharing of 7 methods for C# to obtain local IP collection and sorting

Sample code sharing of 7 methods for C# to obtain local IP collection and sorting

黄舟
黄舟Original
2018-05-11 13:52:202035browse

C#Get sample code sharing for 7 methods of collecting and sorting local IP

 1 private void GetIP()  
 2 {  
 3     string hostName = Dns.GetHostName();//本机名   
 4     //System.Net.IPAddress[] addressList = Dns.GetHostByName(hostName).AddressList;//会警告GetHostByName()已过期,我运行时且只返回了一个IPv4的地址    
 5     System.Net.IPAddress[] addressList = Dns.GetHostAddresses(hostName);//会返回所有地址,包括IPv4和IPv6    
 6     foreach (IPAddress ip in addressList)  
 7     {  
 8         listBox1.Items.Add(ip.ToString());  
 9     }  
10 }

② Use IPHostEntry to obtain the local area network address

1         static string GetLocalIp()  
2         {  
3             string hostname = Dns.GetHostName();//得到本机名   
4             //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址   
5 <SPAN style="WHITE-SPACE: pre"> </SPAN>    IPHostEntry localhost = Dns.GetHostEntry(hostname);  
6             IPAddress localaddr = localhost.AddressList[0];  
7             return localaddr.ToString();  
8         }

③ Obtain the local network ip address

method by sending webrequests to some websites that provide IP query, and then analyze Returned data stream

 1        string strUrl = "提供IP查询的网站的链接";  
 2        Uri uri = new Uri(strUrl);  
 3        WebRequest webreq = WebRequest.Create(uri);  
 4        Stream s = webreq .GetResponse().GetResponseStream();  
 5        StreamReader sr = new StreamReader(s, Encoding.Default);  
 6        string all = sr.ReadToEnd();   
 7        int i = all.IndexOf("[") + 1;  
 8        //分析字符串得到IP    9        return ip;  
10        /* 11         我用的是http://www.php.cn/    
12         (这种链接很容易找的,百度“IP”得到一些网站,分析一下网站的链接就能得到) 
13         返回的数据是:  
14         <p class="well"><p>当前 IP:<code>0.0.0.0</code> 来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></p>  
15         解析这段就行  
16       */

④//Due to the use of ManagementClass, ManagementObjectCollection; reference System.Management.# must be added ##dlland using System.Management;

 1 private void GetIP2()  
 2         {  
 3             string stringMAC = "";  
 4             string stringIP = "";  
 5             ManagementClass managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration");  
 6             ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();  
 7             foreach(ManagementObject managementObject in managementObjectCollection)  
 8             {  
 9                 if ((bool)managementObject["IPEnabled"] == true)  
10                 {  
11                     stringMAC += managementObject["MACAddress"].ToString();  
12                     string[] IPAddresses = (string[])managementObject["IPAddress"];  
13                     if (IPAddresses.Length > 0)  
14                     {  
15                         stringIP = IPAddresses[0];   
16                     }  
17                 }  
18             }  
19             txtMAC.Text = stringMAC.ToString();  
20             txtIP.Text = stringIP.ToString();  
21         }

⑤Calling the Web service provided by a website to query the IP address

It took a long time, but I didn’t learn how to call the Web Service. According to the search The page I arrived at is not working, so I gave up first... After all, I haven't come into contact with WebService yet. It will be easy to get WebService another day (leave it for future improvement)

⑥ Get the ipconfig in CMD Get the result of the command to get the IP

 1    private void GetIP6()  
 2    {  
 3        Process cmd = new Process();  
 4        cmd.StartInfo.FileName = "ipconfig.exe";//设置程序名    5        cmd.StartInfo.Arguments = "/all";  //参数   
 6 //重定向标准输出    7        cmd.StartInfo.RedirectStandardOutput = true;  
 8        cmd.StartInfo.RedirectStandardInput = true;  
 9        cmd.StartInfo.UseShellExecute = false;  
10        cmd.StartInfo.CreateNoWindow = true;//不显示窗口(控制台程序是黑屏)   
11 //cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//暂时不明白什么意思   12        /* 13 收集一下 有备无患 
14        关于:ProcessWindowStyle.Hidden隐藏后如何再显示? 
15        hwndWin32Host = Win32Native.FindWindow(null, win32Exinfo.windowsName); 
16        Win32Native.ShowWindow(hwndWin32Host, 1);     //先FindWindow找到窗口后再ShowWindow 
17        */  18        cmd.Start();  
19        string info = cmd.StandardOutput.ReadToEnd();  
20        cmd.WaitForExit();  
21        cmd.Close();  
22        textBox1.AppendText(info);  
23    }

⑦NetworkInformation

 1 private void GetIP5()  
 2        {  
 3     //需要的命名空间   
 4            //using System.Net.NetworkInformation;   
 5            //using System.Net.Sockets;    6            string str = "";  
 7            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();  
 8            int i = 0;  
 9            foreach (NetworkInterface adapter in adapters)  
10            {  
11   12                IPInterfaceProperties adapterProperties = adapter.GetIPProperties();  
13                UnicastIPAddressInformationCollection allAddress =  
14 adapterProperties.UnicastAddresses;  
15                if (allAddress.Count > 0)  
16                {  
17                    str += "interface   " + i + "description:\n\t " + adapter.Description + "\n ";  
18                    i++;  
19                    foreach (UnicastIPAddressInformation addr in allAddress)  
20                    {  
21                        if (addr.Address.AddressFamily == AddressFamily.InterNetworkV6)  
22                        {  
23                            ipListComb.Items.Add(addr.Address);  
24                        }  
25                        if (addr.Address.AddressFamily == AddressFamily.InterNetwork)  
26                        {  
27                            comboBox1.Items.Add(addr.Address);  
28                        }  
29   30                    }  
31                }  
32            }  
33            MessageBox.Show(str);  
34        }

The above is the detailed content of Sample code sharing of 7 methods for C# to obtain local IP collection and sorting. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn