当前位置:首页 > Windows程序 > 正文

C#获取本机IP搜集整理7种方法

2021-05-26 Windows程序

今天打算试着写个小聊天程序,但是要用到获取本机IP,以前从没用过。摆渡百度了一会儿,出于贪心,想把各种获取本机IP的方法给找出来。摆渡+测试了几个小时,于是有了下面的成果,有点小累,,但看到这些成果,也很高兴。不一定很全,但也不少了。

[csharp] view plaincopy

 

private void GetIP()  

{  

    string hostName = Dns.GetHostName();//本机名  

    //System.Net.IPAddress[] addressList = Dns.GetHostByName(hostName).AddressList;//会警告GetHostByName()已过期,我运行时且只返回了一个IPv4的地址  

    System.Net.IPAddress[] addressList = Dns.GetHostAddresses(hostName);//会返回所有地址,包括IPv4和IPv6  

    foreach (IPAddress ip in addressList)  

    {  

        listBox1.Items.Add(ip.ToString());  

    }  

}  

②使用IPHostEntry获取本机局域网地址

[csharp] view plaincopy

 

        static string GetLocalIp()  

        {  

            string hostname = Dns.GetHostName();//得到本机名  

            //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址  

<span style="WHITE-SPACE: pre"> </span>    IPHostEntry localhost = Dns.GetHostEntry(hostname);  

            IPAddress localaddr = localhost.AddressList[0];  

            return localaddr.ToString();  

        }  


③获取本机网络ip地址

方法时通过向网站向一些提供IP查询的网站发送webrequest,然后分析返回的数据流

[csharp] view plaincopy

 

       string strUrl = "提供IP查询的网站的链接";  

       Uri uri = new Uri(strUrl);  

       WebRequest webreq = WebRequest.Create(uri);  

       Stream s = webreq .GetResponse().GetResponseStream();  

       StreamReader sr = new StreamReader(s, Encoding.Default);  

       string all = sr.ReadToEnd();   

       int i = all.IndexOf("[") + 1;  

       //分析字符串得到IP  

       return ip;  

       /* 

        我用的是?action=getip&ip_url=&from=web    

        (这种链接很容易找的,百度“IP”得到一些网站,分析一下网站的链接就能得到) 

        返回的数据是:  

        <div class="well"><p>当前 IP:<code>0.0.0.0</code>&nbsp;来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></div>  

        解析这段就行  

      */  

④//由于用到了ManagementClass、ManagementObjectCollection;必须添加引用System.Management.dll及using System.Management;

[csharp] view plaincopy

 

private void GetIP2()  

        {  

            string stringMAC = "";  

            string stringIP = "";  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71450.html