首页后端开发ASP.NETC#获取本机IP搜集整理7种方法的示例代码分享

C#获取本机IP搜集整理7种方法的示例代码分享

时间2024-01-30 20:46:03发布访客分类ASP.NET浏览1041
导读:收集整理的这篇文章主要介绍了C#获取本机IP搜集整理7种方法的示例代码分享,觉得挺不错的,现在分享给大家,也给大家做个参考。C#获取本机IP搜集整理7种方法的示例代码分享① 1 PRivate void GetIP( 2 { 3...
收集整理的这篇文章主要介绍了C#获取本机IP搜集整理7种方法的示例代码分享,觉得挺不错的,现在分享给大家,也给大家做个参考。C#获取本机IP搜集整理7种方法的示例代码分享

 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 }
    

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

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         }
    

③获取本机网络ip地址

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

 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>
    &
    nbsp;
    来自:XX省XX市 电信/p>
    p>
    GeoIP: Beijing, China/p>
    /p>
      15         解析这段就行  16       */

④//由于用到了ManagementClass、ManagementObjectCollection;必须添加引用System.Management.dll及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         }
    

⑤调用一个网站提供的Web服务来查询IP网址
弄了好半天,但是没学会怎样调用Web Service,按照搜到的页面做也不行,遂先放弃吧.....毕竟还未接触到WebService,改天把WebService搞定再来一定就容易了(留待以后完善吧)

⑥通过获取CMD里ipconfig命令的结果来得到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        }
    

以上就是C#获取本机IP搜集整理7种方法的示例代码分享的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

C#

若转载请注明出处: C#获取本机IP搜集整理7种方法的示例代码分享
本文地址: https://pptw.com/jishu/593018.html
C#实现添加Word文本与图片超链接的方法 jquery怎么改变href的值

游客 回复需填写必要信息