首页 » 讨论区

屏蔽国内IP,访问需要进行身份验证

GanKing 发布于 2012年02月23日 发表回帖
有一外贸网站想屏蔽国内IP,但我们自己需要管理和允许特定的国内用户访问所以要进行身份验证,请问这样的功能要怎样实现呢?第一次发帖,请大家多关注!谢谢!
有12个回帖,1 - 10
pyawen 02-23 11:32

引用来自“GanKing”的答案

引用来自“pyawen”的答案

同行啊  哈哈

我一般是直接加一个字符串来判断的  比如 ?abc=cba   cba  是后台可以定义的  只要符合这个规则 就直接可以进入 否则判断ip是否是国内ip   

还有可以加入一个黑名单功能   判断是否在黑名单字符串中  黑名单中的ip禁止访问 

嘿嘿,你的方法不错呀,但对我来说好像有些复杂了,小弟是新手,求帮助!
function net_match($network, $ip) { 
      $ip_arr = explode('/', $network);
      $network_long = ip2long($ip_arr[0]);

      $x = ip2long($ip_arr[1]);
      $mask =  long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]);
      $ip_long = ip2long($ip);
 
      return ($ip_long & $mask) == ($network_long & $mask);
}

给你帖一个php的方法    判断ip是否在 27.113.128.0/18  这样的ip段中  具体的你可以自己来解决    不另外贴全部实现了  

鉴客 02-23 10:38

收集到国内的 IP 段,晚上有不少这类 IP 库。

GanKing 02-23 10:48

引用来自“鉴客”的答案

收集到国内的 IP 段,晚上有不少这类 IP 库。
你说的是利用.htaccess文件进行屏蔽吧,其实这个我已经弄好了的,可以用,只是公司用的是动态IP,每天都得增加新的允许访问的IP,另一方面,如果国内的客户要访问的话,要问他要IP地址那有点别扭了,所以最好的解决办法是国内IP要访问必须要进行身份验证。我找到下面这篇文章,http://hi.baidu.com/511903386/blog/item/799d105ccb0b3d4ffbf2c09c.html,但是做了好久都没法实现想要的效果,它就不停地验证,没法进去!不过也要谢谢你!

往事白云边 02-23 11:00

针对国内用户:

1.对访问者进行身份验证

2.做个VPN服务,访问者必须通过VPN才能访问。给需要的客户提供VPN地址,账户密码即可。

pyawen 02-23 11:03

同行啊  哈哈

我一般是直接加一个字符串来判断的  比如 ?abc=cba   cba  是后台可以定义的  只要符合这个规则 就直接可以进入 否则判断ip是否是国内ip   

还有可以加入一个黑名单功能   判断是否在黑名单字符串中  黑名单中的ip禁止访问 

GanKing 02-23 11:25

引用来自“往事白云边”的答案

针对国内用户:

1.对访问者进行身份验证

2.做个VPN服务,访问者必须通过VPN才能访问。给需要的客户提供VPN地址,账户密码即可。

谢谢!可是这要花费好大吧,我只是想通过写代码或设置服务器来达到效果呢。

GanKing 02-23 11:28

引用来自“pyawen”的答案

同行啊  哈哈

我一般是直接加一个字符串来判断的  比如 ?abc=cba   cba  是后台可以定义的  只要符合这个规则 就直接可以进入 否则判断ip是否是国内ip   

还有可以加入一个黑名单功能   判断是否在黑名单字符串中  黑名单中的ip禁止访问 

嘿嘿,你的方法不错呀,但对我来说好像有些复杂了,小弟是新手,求帮助!

IdleMan 02-23 11:30

收集国内IP段

如果访问者是国内IP,跳转到认证页面,否则正常显示页面

认证后的国内IP可正常显示页面

GanKing 02-23 11:33

引用来自“无毒欧阳锋”的答案

收集国内IP段

如果访问者是国内IP,跳转到认证页面,否则正常显示页面

认证后的国内IP可正常显示页面

你这个方法很好呀,我先试试,不懂了再问!

GanKing 02-23 11:35

引用来自“pyawen”的答案

引用来自“GanKing”的答案

引用来自“pyawen”的答案

同行啊  哈哈

我一般是直接加一个字符串来判断的  比如 ?abc=cba   cba  是后台可以定义的  只要符合这个规则 就直接可以进入 否则判断ip是否是国内ip   

还有可以加入一个黑名单功能   判断是否在黑名单字符串中  黑名单中的ip禁止访问 

嘿嘿,你的方法不错呀,但对我来说好像有些复杂了,小弟是新手,求帮助!
function net_match($network, $ip) { 
      $ip_arr = explode('/', $network);
      $network_long = ip2long($ip_arr[0]);

      $x = ip2long($ip_arr[1]);
      $mask =  long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]);
      $ip_long = ip2long($ip);
 
      return ($ip_long & $mask) == ($network_long & $mask);
}

给你帖一个php的方法    判断ip是否在 27.113.128.0/18  这样的ip段中  具体的你可以自己来解决    不另外贴全部实现了  

谢谢!我来试试!

12

登录后可以发表评论,现在登录

相关话题
. IP地址库
. 怎么获得IP?
. 小弟跪求QQ显IP软件?感激涕零!
. 真实IP地址无法获得?请问有什么办法吗?
. 如何在/proc/net/ip_conntrack增加时间...