c# 获取web客户端ip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 获取web客户端ip相关的知识,希望对你有一定的参考价值。

       

 #region 获取web客户端ip

        /// <summary>
        /// 获取IP地址
        /// </summary>
        /// <returns></returns>
        public static string getIPAddress()
        {
            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;
        }

 private 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"];
            }
        } 

 

    #endregion

以上是关于c# 获取web客户端ip的主要内容,如果未能解决你的问题,请参考以下文章

请问 C# 如何获取外网IP?

c#中获取服务器IP,客户端IP以及其它

C#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明

C#获取客户端Ip工具类

如何获取web客户端IP地址

Java Web 获取客户端真实IP