http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5476|回复: 3
打印 上一主题 下一主题

[Asp.Net] C#提取开启代理/cnd服务后的客户端真实IP,通用方式

[复制链接]
跳转到指定楼层
楼主
发表于 2015-3-31 14:35:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家一定有过这样的经历,当你的网站使用了代理 ,或者启用了Cdn就没有办法获取用户的真实IP


这个今天我提供一个通知的方法,保证大家能获取真实的客户端IP

[C#] 纯文本查看 复制代码
            string ip = string.Empty;
            string X_Forwarded_For = Request.Headers["X-Forwarded-For"];
            if (!string.IsNullOrWhiteSpace(X_Forwarded_For))
            {
                ip = X_Forwarded_For;
            }
            else
            {
                string CF_Connecting_IP = Request.Headers["CF-Connecting-IP"];
                if (!string.IsNullOrWhiteSpace(CF_Connecting_IP))
                {
                    ip = CF_Connecting_IP;
                }
                else
                {
                    ip = Request.UserHostAddress;
                }
            }


使用Jquery调用方法

[JavaScript] 纯文本查看 复制代码
  <script>
        $.cookie("mobile", 0, { domain: "jjoobb.cn" });
		 $.get("XXXX自己的网址", function (result) {
	            if (result) {
				   if(result.toString().length > 10 && result.toString().tolocaleLowerCase().indexOf("object")>0)
				   {
                       window.location.href = result;
				   }
                }
    });
    </script>


result.toString().tolocaleLowerCase().indexOf("object")>0
这个是解决在火狐浏览器下出现问题的写法


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
发表于 2015-3-31 15:31:43 | 只看该作者
强烈支持楼主ing……
板凳
发表于 2015-4-1 09:34:17 | 只看该作者
干得漂亮,支持下。
地板
 楼主| 发表于 2017-10-18 14:24:12 | 只看该作者
[C#] 纯文本查看 复制代码
    /// <summary>
    /// IP操作帮助类
    /// 编码人:苏飞
    /// 编码时间:2015-05-18
    /// </summary>
    public class IPHelper
    {
        /// <summary>
        /// 提取开启代理/cdn服务后的客户端真实IP
        /// </summary>
        /// <returns></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 = HttpContext.Current.Request.UserHostAddress;
                }
            }
            return ip;
        }
    }
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-27 12:38

© 2014-2021

快速回复 返回顶部 返回列表