zoukankan      html  css  js  c++  java
  • 关于黑名单IP的设置

    最近在做一个项目的时候,需要做一个自动的黑名单设置,也就是将一天内重复出错的超过一定次数的手机号,和IP给加入黑名单里面,下次请求的时候先判断是否在黑名单里。

    这个是获取IP地址的方法

    1  private string GetIP()
    2         {
    3             string ip = string.Empty;
    4             if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))
    5                 ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);
    6             if (string.IsNullOrEmpty(ip))
    7                 ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
    8             return ip;
    9         }
    GetIP

    当时自己也没在意,就直接把出现错误的IP和手机存到相应的记录表里,当时我是拿自己的手机连的无线网和自己工位上的电脑测了一下没问题,可以准确获取到IP,然后就直接告诉客户没问题,就这样上线了,问题就这样的存在了。客户突然告诉我很多电话打过来说都是IP受限制,我看了一下,发现一个IP在分别用不同的手机号都出过错。这个怎么个情况呢,不可能存在这么多人用一个IP的网络啊。后来在网上查了下,才明白手机的数据网例如:2G,3G,4G这些网络不可能会一个手机号一个IP,一般都是一个地区的手机号都是一个IP,所以才出了我这边的这个错误。

    然后这个当时我想到了两个解决方案,一是把IP次数加大。

    另一个解决方案是把手机和一般的请求区分开,这样当时手机的请求出现时,就不考虑IP的这个问题,只有PC上的请求时再去考虑IP的问题。

    这个两个方案其实都有一些瑕疵,但我这边时暂时是考虑不到请他的方法,希望高手们能多多指教。

  • 相关阅读:
    [20160701]DevideByZeroWithoutNoException——from 《Java How To Program (Early Objects), 10th》
    Linux/Centos下安装部署phantomjs 及使用
    SVG中 transform矩阵遇到的兼容性问题
    jQuery中clone和clone(true)的区别
    彻底删除MySQL
    安卓工程师笔试--2015--波导公司
    如何查看、备份电脑隐藏的恢复分区
    效率以及时间维度
    数据集市设计
    Python学习之一:Python2.7与opencv2.4安装配置
  • 原文地址:https://www.cnblogs.com/qzzy/p/4765634.html
Copyright © 2011-2022 走看看