张经纬的博客 -

禁止国外IP访问

在网上看到禁止国外IP访问代码,我晕了。难道不可以变通一下么?

var language = navigator.language||navigator.browserLanguage;
if (language.toLowerCase() === 'zh-cn'){
	//code here
}else{
	//other code
}

这是Js的代码,相信其他语言也是可以检测浏览器/OS使用语言的。

目的达到了,并且漏掉的虫子也不见得就比检测IP的多。

原文链接|

目前 共有 8 条评论 ,点此发表评论

  1. colordog

    十月 20th, 2009 @ 21:05

    不是这么玩的,有些系统的语言不是系统内置的,可以随时切换,例如苹果,你这么搞会死人的

    用geoip库,判断出国家CN,然后ban掉CN以外的即可,很简单,支持多种语言。

    回复

  2. 张经纬

    十月 20th, 2009 @ 21:22

    我检测的是浏览器语言。
    saffari也有navigator对象,肯定也会有navigator.language。
    用这样的方法判断我觉得简单的多,无需再借助第三方的库。

    回复

  3. colordog

    十月 21st, 2009 @ 23:56

    可是你有没有考虑过用英文系统的中国用户,以前很多朋友用英文xp+中文语言包的

    回复

    张经纬 reply on 十月 22nd, 2009 14:33:

    确实是的。
    在这一点上还没有完美的解决方法。

    回复

  4. wkl17

    三月 2nd, 2011 @ 23:10

    问下博主:
    假如是网站被攻击,对方用的一般都是(比如美国的)代理IP吧,那这样有效吗?

    我现在是有网站,只想允许国内IP访问。看了博主的代码(我不懂代码,只懂中文说明。。),那是否可以反过来,只允许中文语言的访问网站,非中文的给出提示或转到其它网站呢??

    比如我想,非中文,转到google.com , 知道博主能否给下代码呢?
    非常感谢!!

    回复

    张经纬 reply on 三月 3rd, 2011 20:19:

    @wkl17, 如果是被攻击的话,上述代码就无效的,还是要从server端去做处理。

    回复

  5. rc

    九月 24th, 2011 @ 10:44

    请问如果站长或管理员自己用的是CN系统,如何过滤自己的机器,以便自己人访问呢?

    回复

  6. rc

    九月 24th, 2011 @ 10:47

    另外, 这样会不会影响网络蜘蛛? 会不会被蜘蛛误认为是蜘蛛陷阱?

    回复