C# 获取客户端IPv4地址的示例代码

网上找了一些获取客户端IP的方法,但本地测试时,返回的是IPv6的表示方法"::1":

Host文件里面:#    ::1             localhost

后来找了获取IPv4的方法就可以了,比较好用:

public static string GetClientIPv4Address()
    {
      string ipv4 = String.Empty;
      foreach (IPAddress ip in Dns.GetHostAddresses(GetClientIP()))
      {
        if (ip.AddressFamily.ToString() == "InterNetwork")
        {
          ipv4 = ip.ToString();
          break;
        }
      }
      if (ipv4 != String.Empty)
      {
        return ipv4;
      }
      // 利用 Dns.GetHostEntry 方法,由获取的 IPv6 位址反查 DNS 纪录,
      // 再逐一判断何者为 IPv4 协议,即可转为 IPv4 位址。
      foreach (IPAddress ip in Dns.GetHostEntry(GetClientIP()).AddressList)
      //foreach (IPAddress ip in Dns.GetHostAddresses(Dns.GetHostName()))
      {
        if (ip.AddressFamily.ToString() == "InterNetwork")
        {
          ipv4 = ip.ToString();
          break;
        }
      }
      return ipv4;
    }

    public static string GetClientIP()
    {
      if (null == HttpContext.Current.Request.ServerVariables["HTTP_VIA"])
      {
        return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
      }
      else
      {
        return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
      }
    }

以上就是C# 获取客户端IPv4地址的示例代码的详细内容,更多关于c# 获取ipv4地址的资料请关注我们其它相关文章!

(0)

相关推荐

  • winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例

    1.  添加程序集 2.  引入命名空间 using System.Management; 3.  方法 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection nics = mc.GetInstances(); foreach (ManagementObject nic in nics) { if (Convert.ToBoole

  • 如何用C#验证IP是否为局域网地址

    前一阵子有[广州.NET群]的客户问起这个问题,说他们需要验证客户输入的网站是否为局域网.其实局域网的IP并没有确定的定义,只要是局域网中,即可设置为任何一个IP. 但确实存在一个内网保留地址的定义,它会确保公网IPv4的地址不会分配在"内网保留地址"中,该地址定义如下: 10.0.0.0/8,即10.0.0.0-10.255.255.255; 172.16.0.0/12,即172.16.0.0-172.31.255.255; 192.168.0.0/16,即192.168.0.0-1

  • C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析

    本文实例讲述了C#实现获取本地内网(局域网)和外网(公网)IP地址的方法.分享给大家供大家参考,具体如下: 1.获取本机的IP地址集合: /// <summary> /// 获取本机所有ip地址 /// </summary> /// <param name="netType">"InterNetwork":ipv4地址,"InterNetworkV6":ipv6地址</param> /// <

  • C#获取本机IP地址(ipv4)

    获取本机所有IP地址: 这些地址是包含所有网卡(虚拟网卡)的ipv4和ipv6地址. string name = Dns.GetHostName(); IPAddress[] ipadrlist = Dns.GetHostAddresses(name); 获取本机所有IPV4地址: string name = Dns.GetHostName(); IPAddress[] ipadrlist = Dns.GetHostAddresses(name); foreach (IPAddress ipa

  • c#获取客户端IP地址(考虑代理)

    说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同时也想抛砖引玉.参考的博文及其作者在下文均有提及.待到自己以后对HTTP.TCP/IP等知识学深入了,一定再来这里深入讨论这个内容. 一.名词 首先说一下接下来要讲到的一些名词. 在Web开发中,我们大多都习惯使用HTTP请求头中的某些属性来获取客户端的IP地址,常见的属性是REMOTE_ADDR.HTTP_VIA和HTTP_X_F

  • C#编程获取IP地址的方法示例

    本文实例讲述了C#编程获取IP地址的方法.分享给大家供大家参考,具体如下: 1.获取客户端IP /// <summary> /// 获取客户端Ip /// </summary> /// <returns></returns> public String GetClientIp() { String clientIP = ""; if (System.Web.HttpContext.Current != null) { clientIP =

  • 获取客户端IP地址c#/vb.net各自实现代码

    公司的域环境内,程序要求获取客户端的IP地址,分部程序码分享于此. C#: VB.NET:

  • C#获取真实IP地址实现方法

    本文实例讲述了C#获取真实IP地址实现方法,分享给大家供大家参考.具体实现方法如下: 通常来说,大家获取用户IP地址常用的方法是: 复制代码 代码如下: string IpAddress = ""; if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables[&q

  • C#获取路由器外网IP,MAC地址的实现代码

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密码,但是需要有一个代理页面获取客户端公网ip地址的,这样C#请求此页面即可获取到路由器公网ip地址.如 //getip.ashx 测试路由为水星 MR804,水星 MR808,都可以成功重启路由和获取到路由器MAC和外网IP地址 源代码 using System.Text; using System

  • C#实现获取设置IP地址小工具

    界面效果图如下: 报表界面 说下关键代码 需要开启 Windows Management Instrumentation服务(默认已经开启),在程序中需要增加 Management引用. 主要有NetworkAdapter(保存适配器的IP地址,网关,子网掩码,设置IP方面等 ),NetworkAdapterUtil(主要是NetworkAdapter类的集合 )两个类. 在windows8 需要在app.manifest文件中 修改配置  <requestedExecutionLevel le

  • c# 获得本地ip地址的三种方法

    网上有很多种方法可以获取到本地的IP地址.一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets; foreach (NetworkInterface netif in NetworkInterface.GetAllNetworkInterfaces() .Where(a => a.SupportsMulticast) .Where(a => a.OperationalStatus == O

随机推荐