V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chengxiao
V2EX  ›  问与答

根据用户所在ip不同自动切换城市这个应该如何实现啊?求可行方法

  •  
  •   chengxiao · 2012-05-19 14:45:26 +08:00 · 5938 次点击
    这是一个创建于 4606 天前的主题,其中的信息可能已经有所发展或是发生改变。
    根据用户所在ip不同自动切换城市这个应该如何实现啊?求可行方法,目前是用js调用新浪的ip库但是缺点是js跳转会有一个过程,怎样才能实现像58同城,赶集网那样的效果呢?求科普
    14 条回复    1970-01-01 08:00:00 +08:00
    Showfom
        1
    Showfom  
       2012-05-19 14:50:24 +08:00
    http://fw.qq.com/ipaddress

    用腾讯的IP库吧,比较准确
    x86
        2
    x86  
       2012-05-19 14:55:24 +08:00
    @Showfom 要么准确,要么偏差太大,偶尔几次显示登入地址差了几个省份,还有一次直接显示中国
    wingoo
        3
    wingoo  
       2012-05-19 15:22:16 +08:00
    用纯真的ip库吧
    在github上搞了个练手项目https://github.com/wingoo/CZIP-Filter
    里面的ips2.txt是已转换好的ip城市对应库
    导入数据库就行了

    或者下载纯真的,然后运行下程序
    Wy4q3489O1z996QO
        4
    Wy4q3489O1z996QO  
       2012-05-19 15:31:02 +08:00
    @Showfom
    @x86
    奇怪你们那qq的ipaddress还能访问?
    我这里:
    The page you are looking for is temporarily unavailable.
    Please try again later.
    qiuai
        5
    qiuai  
       2012-05-19 15:48:47 +08:00
    @romotc 一样不能访问
    likuku
        6
    likuku  
       2012-05-19 16:20:33 +08:00
    qqwry 以前用这个,其实也是纯真

    PECL :: Package :: qqwry : http://pecl.php.net/package/qqwry

    IP::QQWry - search.cpan.org : http://search.cpan.org/~sunnavy/IP-QQWry-0.0.16/lib/IP/QQWry.pm
    ichigo
        7
    ichigo  
       2012-05-19 16:21:47 +08:00
    用纯真吧,挺准的,更新也比较及时。
    Janpo
        8
    Janpo  
       2012-05-19 16:28:22 +08:00
    GEOIP
    chengxiao
        9
    chengxiao  
    OP
       2012-05-19 20:52:30 +08:00
    @Showfom
    @Janpo
    @ichigo
    @likuku
    @qiuai
    @romotc
    @likuku
    @qiuai
    @romotc
    @x86
    @wingoo
    各位亲们......我已经有ip库了 现在求的是怎么像58那样 以访问直接就是城市站点,而非js跳一次....
    cutehalo
        10
    cutehalo  
       2012-05-19 20:53:41 +08:00   ❤️ 1
    @chengxiao 存cookie吧
    wingoo
        11
    wingoo  
       2012-05-19 21:00:38 +08:00   ❤️ 1
    @chengxiao 可以肯定的是,如果二级域名不同肯定要跳一次,如果二级域名相同,动态读取
    ElmerZhang
        12
    ElmerZhang  
       2012-05-19 21:08:12 +08:00   ❤️ 1
    @chengxiao 思路:
    页面一开始先查cookie,看有没有location,如果有,直接跳转。
    如果没有,查IP库判断用户所在地,然后跳转。

    跳转方式:如果用户访问的不是他所在地的页面,直接302跳转,PHP实现方式:
    header('Location: xxx.xxx.xxx ');
    9hills
        13
    9hills  
       2012-05-19 21:08:39 +08:00   ❤️ 1
    @chengxiao 你服务端是PHP的话,判断IP什么的在PHP里做不就不用跳了。。。为啥非要放在js里
    CoX
        14
    CoX  
       2012-05-19 21:17:58 +08:00   ❤️ 1
    @romotc 不能访问,难不成都没人维护
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.