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

法子 发布于 2012/02/23 10:28
阅读 2K+
收藏 1
有一外贸网站想屏蔽国内IP,但我们自己需要管理和允许特定的国内用户访问所以要进行身份验证,请问这样的功能要怎样实现呢?第一次发帖,请大家多关注!谢谢!
加载中
1
pyawen
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段中  具体的你可以自己来解决    不另外贴全部实现了  

0
鉴客
鉴客
收集到国内的 IP 段,晚上有不少这类 IP 库。
huzorro
huzorro
一直用纯真的ipdata
0
法子
法子

引用来自“鉴客”的答案

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

针对国内用户:

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

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

0
pyawen
pyawen

同行啊  哈哈

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

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

一号男嘉宾
一号男嘉宾
你这一招不错,在后面加参数,曰~
0
法子
法子

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

针对国内用户:

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

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

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

引用来自“pyawen”的答案

同行啊  哈哈

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

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

嘿嘿,你的方法不错呀,但对我来说好像有些复杂了,小弟是新手,求帮助!
往事白云边
往事白云边
额 如果你网站服务器是租用的话 提供VPN服务就需要成本
0
IdleMan
IdleMan

收集国内IP段

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

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

0
法子
法子

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

收集国内IP段

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

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

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

引用来自“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段中  具体的你可以自己来解决    不另外贴全部实现了  

谢谢!我来试试!
返回顶部
顶部