关于黑名单IP的设置
2015-08-28 09:59
435 查看
最近在做一个项目的时候,需要做一个自动的黑名单设置,也就是将一天内重复出错的超过一定次数的手机号,和IP给加入黑名单里面,下次请求的时候先判断是否在黑名单里。
这个是获取IP地址的方法
GetIP
当时自己也没在意,就直接把出现错误的IP和手机存到相应的记录表里,当时我是拿自己的手机连的无线网和自己工位上的电脑测了一下没问题,可以准确获取到IP,然后就直接告诉客户没问题,就这样上线了,问题就这样的存在了。客户突然告诉我很多电话打过来说都是IP受限制,我看了一下,发现一个IP在分别用不同的手机号都出过错。这个怎么个情况呢,不可能存在这么多人用一个IP的网络啊。后来在网上查了下,才明白手机的数据网例如:2G,3G,4G这些网络不可能会一个手机号一个IP,一般都是一个地区的手机号都是一个IP,所以才出了我这边的这个错误。
然后这个当时我想到了两个解决方案,一是把IP次数加大。
另一个解决方案是把手机和一般的请求区分开,这样当时手机的请求出现时,就不考虑IP的这个问题,只有PC上的请求时再去考虑IP的问题。
这个两个方案其实都有一些瑕疵,但我这边时暂时是考虑不到请他的方法,希望高手们能多多指教。
这个是获取IP地址的方法
private string GetIP() { string ip = string.Empty; if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"])) ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]); if (string.IsNullOrEmpty(ip)) ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]); return ip; }
GetIP
当时自己也没在意,就直接把出现错误的IP和手机存到相应的记录表里,当时我是拿自己的手机连的无线网和自己工位上的电脑测了一下没问题,可以准确获取到IP,然后就直接告诉客户没问题,就这样上线了,问题就这样的存在了。客户突然告诉我很多电话打过来说都是IP受限制,我看了一下,发现一个IP在分别用不同的手机号都出过错。这个怎么个情况呢,不可能存在这么多人用一个IP的网络啊。后来在网上查了下,才明白手机的数据网例如:2G,3G,4G这些网络不可能会一个手机号一个IP,一般都是一个地区的手机号都是一个IP,所以才出了我这边的这个错误。
然后这个当时我想到了两个解决方案,一是把IP次数加大。
另一个解决方案是把手机和一般的请求区分开,这样当时手机的请求出现时,就不考虑IP的这个问题,只有PC上的请求时再去考虑IP的问题。
这个两个方案其实都有一些瑕疵,但我这边时暂时是考虑不到请他的方法,希望高手们能多多指教。
相关文章推荐
- 解析软件设计中那些最基础的控件使
- maven 工程 dubbo服务的xml配置文件报错的问题
- 人际关系之三纲五常
- C++浮点型输出保留小数位
- 突击Mercurial SCM(HG)11---自搭Server后push遇到的问题
- 导航控制器的原理
- ibatis批量处理+多表关联查询
- WebService-相关概念介绍
- WebService-通俗讲解
- Icacls 在windows目录文件授权中的应用
- 如果数字密码死了,谁能取代?
- Django之第一个app<5>
- c语言之函数或者变量的weak属性
- hdoj 1050 Moving Tables
- cpp 文件打印LOG
- iOS AutoLayout自动布局中级开发教程(5)-修改约束的值,延迟加载
- 1038. Recover the Smallest Number (30)好题
- codevs 1690 线段树
- 剑指offer——面试题31:连续子数组的最大和
- ASP.NET 常用内置对象详解-----Response