C#获得当前页面客户端的真实IP

并且可以提取开启代理/cdn服务后的客户端真实IP


IPHelper帮助类库源码


/// <summary>
/// 开发团队:yunjsonTeam
/// 官方主页:http://www.yunjson.com
/// </summary>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace yunjsonTeam.Helper
{
    public class IPHelper
    {
        /// <summary>
        /// C#获得当前页面客户端的真实IP
        /// 可以提取开启代理/cdn服务后的客户端真实IP
        /// </summary>
        /// <returns>当前页面客户端的真实IP</returns>
        public static string GetTrueIP()
        {
            string ip = string.Empty;
            string X_Forwarded_For = HttpContext.Current.Request.Headers["X-Forwarded-For"];
            if (!string.IsNullOrWhiteSpace(X_Forwarded_For))
            {
                ip = X_Forwarded_For;
            }
            else
            {
                string CF_Connecting_IP = HttpContext.Current.Request.Headers["CF-Connecting-IP"];
                if (!string.IsNullOrWhiteSpace(CF_Connecting_IP))
                {
                    ip = CF_Connecting_IP;
                }
                else
                {
                    //没开启代理 正常获取ip
                    ip = HttpContext.Current.Request.UserHostAddress;
                }
            }
            return ip;
        }
    }
}