如下代码:

/**//// <summary>
    /// RealIP 的摘要说明:
    /// 获得用户的真实ip,由于squidserver的原因直接取到的ip是内网ip
    /// </summary>
    abstract public class RealIP
    {
        const string HEADER_KEY_IP = "X-Forwarded-For";

        /**//// <summary>
        /// 真实ip
        /// </summary>
        public static string Value
        {
            get
            {
                System.Web.HttpRequest request = System.Web.HttpContext.Current.Request;
                string ip = string.Empty;
                string ipHeader = request.Headers[HEADER_KEY_IP];
    
                if(!string.IsNullOrEmpty(ipHeader))
                {
                    string[] IPs = ipHeader.Split(',');
                    foreach (string ipItem in IPs)
                    {
                        if ((!string.IsNullOrEmpty(ipItem)) && (!IsLocalIP(ipItem)))
                        {
                            ip = ipItem;
                            break;
                        }
                    }
                }
                if(ip == string.Empty)ip = request.UserHostAddress;
                return ip;
            }
        }

        static bool IsLocalIP(string ip)
        {
            return ip.StartsWith("192.168.") || ip.StartsWith("172.16.") || ip.StartsWith("10.");
        }
    }

其原理就是局域网内的服务器,向真实real server转发请求时,将客户端用户的真实ip放到了Http头信息中。

在内网服务器中获得真正的客户端ip的方法相关推荐

  1. 如何在内网(局域网中)发布OpenLayers地图平台

    一.概述 这里以中间件作为谷歌地球(GoogleEarth)卫星地图发布引挚,杭州市4到14级谷歌地球卫星地图(WGS84经纬度投影)作为中间件的地图发布数据源,OpenLayers开源平台作为加载中 ...

  2. 两台电脑通过交叉网线连接一台做为服务器一台做为客户端的配置方法

    两台电脑通过交叉网线连接一台做为服务器一台做为客户端的配置方法 在WIN7 64位测试通过 1,.首次将两台电脑用交叉网线连接 2.设置两台电脑的IP,一台电脑的IP设为192.168.1.1,子网掩 ...

  3. 我的世界服务器自动被踢怎么可以进去,我的世界中国版服务器中如何解决玩家作弊的简单方法...

    原标题:我的世界中国版服务器中如何解决玩家作弊的简单方法 我的世界中国版,作弊是件可耻的行为,可能有很多玩家遇到了其他玩家在游戏中作弊,那么我们应该如何解决这个问题?今天就由超好玩小编来告诉大家我的世 ...

  4. 获取客户端ip的方法

    首先先说一下常规的js通过api获取ip的方法: 搜狐接口: <script src="http://pv.sohu.com/cityjson?ie=utf-8">&l ...

  5. 为VMware虚拟机中的Linux系统设置固定IP的方法

    这篇文章主要介绍了为VMware虚拟机中的Linux系统设置固定IP的方法,包括以nat方式固定ip上网的方法,需要的朋友可以参考下 1.配置DNS: 修改 /etc/resolv.conf 文件,添 ...

  6. 企业内部在centos7.2系统中必杀技NTP时间服务器及内网服务器时间同步(windows和linux客户端同步)...

    网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议.NTP的用途是把计算机的时间同步到某些时间标准.目前采用的时间标准是世界协调时UTC(Unive ...

  7. 利用nginx反向代理在内网服务器(无外网)下访问接口,视频,地图(一)

    最近在项目中遇到一个需求,需要把项目部署在客户内网服务器上(无外网),内网服务器(无外网)需要访问公网IP,由于我们的项目包括外接谷歌地图接口,视频直播接口:项目经理就把这个任务分配给我,让做ngni ...

  8. uni-app在内网环境中使用editor组件,报错问题修复

    问题:控制台可看到https://unpkg.com/quill@1.3.7/dist/quill.min.js报错,内网环境中访问不了外网环境 官网说明: 修改步骤: 将quill.min.js和i ...

  9. Linux服务器中木马(肉鸡)手工清除方法

    由于自己也碰到过这种情况,刚好看到这篇文章,先转载过来.的确蛮有用的哦. 首先剧透一下后门木马如下: (当然这是事后平静下来后慢慢搜出来的,那个时候喝着咖啡感觉像个自由人) 木马名称 Linux.Ba ...

最新文章

  1. mysql group_concat时间用法
  2. Java web之web.xml配置详解
  3. 高校实验室管理系统_史上最全面的实验室信息管理系统(LIMS)全解
  4. SpringMVC+FreeMarker
  5. 【英语学习】【Level 07】U03 Amazing wonders L4 The Qin Dynasty legacy
  6. 20165320 第六周学习总结
  7. OpenGL快速入门
  8. 模糊PID控制算法 之 C语言实现
  9. pandownload最新复活版登录失败_神途手游万能登录器app-神途手游万能登录器app最新手机版下载v1.0...
  10. Axure制作倒计时
  11. js 实现图片放大镜原理
  12. TCP 糊涂窗口综合症
  13. 【数据安全】4. Android 文件级加密(File-based Encryption)之密钥管理
  14. Java计算花费时间的模板设计模式
  15. Frequent values POJ - 3368(线段树)
  16. Springsecurity+cas整合后无法单点登出
  17. 五柳先生传(陶渊明)
  18. 智能设备点巡检系统,快速提高设备管理效率,欢迎在线试用
  19. 华为搜索引擎问世!互联网格局将改写?
  20. 飞控手机地面站调试_PX4飞控连接地面站注意事项

热门文章

  1. 我对软件行业及大数据的理解
  2. java Interface
  3. pycharm 格式化代码
  4. gulp-autoprefixer报Promise is not defined错误
  5. java中四种引用类型(对象的强、软、弱和虚引用)
  6. 摇滚吧HTML5!Jsonic超声波前端交互!
  7. squid反向代理(实现缓存)加速web
  8. Oracle数据库实例的创建、删除、修改
  9. node.js java web_Node.js 做 Web 后端优势为什么这么大?
  10. 【工具类】JAVA POI 代码导出表格的两种办法(代码全注释,小白也不怕)