当前位置:编程学习 > C#/ASP.NET >>

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

print?1、//GetHostName  
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());   
     }   
 } 

1、//GetHostName
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()); 
     } 
 }
2、使用IPHostEntry获取本机局域网地址

[csharp]
static string GetLocalIp()   
         {   
             string hostname = Dns.GetHostName();//得到本机名     
             //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址     
         IPHostEntry localhost = Dns.GetHostEntry(hostname);   
             IPAddress localaddr = localhost.AddressList[0];   
             return localaddr.ToString();   
         } 

static string GetLocalIp() 
         { 
             string hostname = Dns.GetHostName();//得到本机名  
             //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址  
      IPHostEntry localhost = Dns.GetHostEntry(hostname); 
             IPAddress localaddr = localhost.AddressList[0]; 
             return localaddr.ToString(); 
         }
3、获取本机网络ip地址

[csharp]
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;   
        /* 
         我用的是http://www.ip.cn/getip.php?action=getip&ip_url=&from=web    
         (这种链接很容易找的,百度“IP”得到一些网站,分析一下网站的链接就能得到) 
         返回的数据是:  
         <div class="well"><p>当前 IP:<code>0.0.0.0</code> 来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></div>  
         解析这段就行  
       */ 

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; 
        /*
         我用的是http://www.ip.cn/getip.php?action=getip&ip_url=&from=web   
         (这种链接很容易找的,百度“IP”得到一些网站,分析一下网站的链接就能得到)
         返回的数据是: 
         <div class="well"><p>当前 IP:<code>0.0.0.0</code> 来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></div> 
         解析这段就行 
       */
4、//由于用到了ManagementClass、ManagementObjectCollection;必须添加引用System.Management.dll及using System.Management;

 

[csharp] view plaincopyprint?private void GetIP2()   
         {   
             string stringMAC = "";   
             string stringIP = "";   
             ManagementClass managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration");   
             ManagementObjectCollection managementObjectCollection = managementClass.GetInstances();   
             foreach(ManagementObject managementObject in managementObjectCollection)   
             {   补充:软件开发 , C# ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,