doufenger
V2EX  ›  问与答

如何禁止日本访客访问网站?

  •  
  •   doufenger · Apr 2, 2017 · 6761 views
    This topic created in 3502 days ago, the information mentioned may be changed or developed.

    既然比如百度统计之类的能识别各地区访客,那应该也有办法做到禁止日本访客访问网站吧?

    Supplement 1  ·  Apr 2, 2017
    楼下介绍了 GEOIP ,我想在页面上判断,但是出现了奇怪的问题


    这样写,日本的 IP 可以访问,其他国家不行
    [mw_shl_code=php,true] //geophp 的位置
    include ('geoip.php');
    // GEOIP 数据库位置
    $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);

    if($country=='jp') {;} else {exit;}[/mw_shl_code]

    这样写,任何国家 IP 都访问不了
    [mw_shl_code=php,true] //geophp 的位置
    include ('geoip.php');
    // GEOIP 数据库位置
    $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);

    if($country=='jp') {exit;} else {;}[/mw_shl_code]
    Supplement 2  ·  Apr 3, 2017
    谢谢大家提供的思路 已经通过禁 IP 禁日语浏览器解决了
    34 replies  •  2017-04-04 11:36:51 +08:00
    a342191555
    a342191555
    Apr 2, 2017 via iPhone
    1
    nginx geoip module ?
    doufenger
    doufenger
    OP
    Apr 2, 2017
    2
    @a342191555 = =。。这个好像要把日本 IP 一个个添加
    coyove
    coyove
    Apr 2, 2017
    4
    如果你愿意用 cloudflare 的话。。。
    GoBeyond
    GoBeyond
    Apr 2, 2017 via Android
    5
    nginx geoip
    自行在后端程序里前置判断访客 ip
    直接在防火墙侧( Incapsula 支持,其他的不确定) ban 掉对应国家
    etc.
    fytriht
    fytriht
    Apr 2, 2017
    6
    好奇怎么会有这样的需求...
    GoldenPillow
    GoldenPillow
    Apr 2, 2017
    7
    默默求会员
    DoraJDJ
    DoraJDJ
    Apr 2, 2017
    8
    可以,很爱国。
    最简单的用 Nginx 的 GeoIP
    KingBillSame
    KingBillSame
    Apr 2, 2017 via Android
    9
    如果挂了全局为皮嗯不就进不去了
    doufenger
    doufenger
    OP
    Apr 2, 2017
    10
    @coyove cloudflare 怎么弄的 我用的就是
    bobylive
    bobylive
    Apr 2, 2017 via Android
    11
    @doufenger 不需要一個一個添加啊, GeoIP 本身就是個 IP 庫,支持國家匹配的
    boter
    boter
    Apr 2, 2017 via iPhone
    12
    日本版权么
    coyove
    coyove
    Apr 2, 2017
    13
    @doufenger firewall 里面设置
    doufenger
    doufenger
    OP
    Apr 2, 2017
    14
    @coyove 那里只能用设置验证 不能把整个国家添加到黑名单
    doufenger
    doufenger
    OP
    Apr 2, 2017
    15
    @bobylive 谢谢,刚了解了。 我想在页面上判断访客,但是这样写了代码到页面判断也不行,可以请问是什么问题吗

    [mw_shl_code=php,true] //geophp 的位置
    include ('geoip.php');
    // GEOIP 数据库位置
    $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);

    if($country=='jp') {exit;} else {;}[/mw_shl_code]
    misaka19000
    misaka19000
    Apr 2, 2017 via Android
    16
    @DoraJDJ 小林赛高
    des
    des
    Apr 2, 2017 via Android
    17
    浏览器不是有带支持语言吗?判断一下不行吗?
    zc666
    zc666
    Apr 2, 2017 via iPhone
    18
    认同楼上的观点,直接判断浏览器发送请求头的 Accept-Language 简单些。
    doufenger
    doufenger
    OP
    Apr 2, 2017
    19
    @des 好思路
    Showfom
    Showfom
    PRO
    Apr 2, 2017 via iPhone
    20
    光设置 IP 还不行 你得用 UA 把浏览器带 JA 语言的都屏蔽掉
    Felldeadbird
    Felldeadbird
    Apr 2, 2017 via iPhone
    22
    从 ip 判断,其次是语言环境。
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Apr 2, 2017 via iPhone
    23
    geoIP 之后,在 nginx 里直接就可以屏蔽了,不需要到网站应用层。
    herozhang
    herozhang
    Apr 2, 2017 via iPhone
    24
    要求手机注册短信验证码登录,不支持日本手机号即可
    kmdd33
    kmdd33
    Apr 2, 2017 via iPad
    25
    安装 csf 防火墙,参考我这篇文章: https://segmentfault.com/n/1330000008451475
    paulagent
    paulagent
    Apr 3, 2017
    26
    @fytriht 很多这种需求啊,购买版权的公司可能只买了一个国家的版权,所以只有这个国家的人才能看
    lalala2016
    lalala2016
    Apr 3, 2017 via Android❤️1
    28
    我觉得这问题挺简单的,用不着什么复杂的技术,用 cloudxns 把亚太组的日本访客解析到 fbi 的服务器上不就好了?😏
    lun10439547
    lun10439547
    Apr 3, 2017
    29
    dnspod 国际版!
    shuson
    shuson
    Apr 3, 2017❤️1
    30
    var isJapanese = prompt("日本人ですか?", "はい")
    if(isJapanese) {
    alert("滚")
    }
    Mazda
    Mazda
    Apr 3, 2017 via iPhone
    31
    再提供个思路,还可以判断时区,东九区就日本韩国用,在此基础上再加个语言判断,被禁的人都不知道怎么回事,封 ip 要绕过太简单
    julyclyde
    julyclyde
    Apr 4, 2017
    32
    @Mazda 浏览器会上报时区吗?
    Mazda
    Mazda
    Apr 4, 2017 via iPhone
    33
    @julyclyde 通过 js 获取
    julyclyde
    julyclyde
    Apr 4, 2017
    34
    @Mazda o ,这个我倒没想到。我对前端技术基本上一无所知……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2991 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 12:04 · PVG 20:04 · LAX 04:04 · JFK 07:04
    ♥ Do have faith in what you're doing.