• 请不要在回答技术问题时复制粘贴 AI 生成的内容
alwayshere
V2EX  ›  程序员

有点搞不明白, Chinaz 的 ip 查询代码在调戏用户智商?

  •  
  •   alwayshere · Apr 10, 2017 · 11921 views
    This topic created in 3494 days ago, the information mentioned may be changed or developed.

    http://ip.chinaz.com/

    看到下面的:“获取代码:把下面一小段代码加到你的主页中即可在您的网页上中显示来访用户的 IP 及其地区!”

    里面 js 的 url打开是一串 json ,我就想问问 chinaz 给我一串 json ,我该怎么用?而且服务器返回的 response header 也没有允许跨域使用,你给个 jsonp 不行么?官网还大大方方的贴在首页,不怕被业内人士贻笑大方么?

    Supplement 1  ·  Apr 10, 2017
    好吧,我直接打开 script 的 url ,看到结果就开喷了,没有在实际网页中插入这个 script ,是我的错,能删帖么
    Supplement 2  ·  Apr 10, 2017
    另外,这串 js : http://ip.chinaz.com/getip.aspx ,应该是根据 http_referer 来返回不同的结果,在实际插入网页中会多了一个 document.write ,不过写了前端这么多年, document.write 一个 json ,这么先进的编写方式我还是第一次遇到,估计我的代码水平真不如下面嘲讽我的人吧
    74 replies  •  2017-04-11 18:28:07 +08:00
    coo
    coo
    Apr 10, 2017
    1
    它没有让您打开 URL 啊,而是要带着 script 标签整个放到页面源码中。

    没有任何问题。
    xiaoyaoking
    xiaoyaoking
    Apr 10, 2017
    2
    .....这也能喷???
    SourceMan
    SourceMan
    Apr 10, 2017
    3
    。。。。。。
    不是把这段脚本粘贴放置在需要的网页下方吗?
    <script type="text/javascript" src="http://ip.chinaz.com/getip.aspx"></script>

    嗯嗯,确实是低估了用户智商了
    grimpil
    grimpil
    Apr 10, 2017 via Android❤️1
    4
    楼主你上小学几年级?
    kokutou
    kokutou
    Apr 10, 2017 via Android❤️1
    5
    角度刁钻。。。
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Apr 10, 2017
    6
    2333333
    smallerpig
    smallerpig
    Apr 10, 2017
    7
    楼主真是要被贻笑大方了~~
    160432871
    160432871
    Apr 10, 2017❤️1
    8
    站长: MDZZ
    y1shan
    y1shan
    Apr 10, 2017
    9
    楼主这个智商基本告别了程序猿
    KIDJourney
    KIDJourney
    Apr 10, 2017
    10
    高估用户智商了。。。
    scusjs
    scusjs
    Apr 10, 2017
    11
    第一反应我以为是我没睡醒
    lwbjing
    lwbjing
    Apr 10, 2017
    12
    这特么就比较尴尬了...
    LeoSocks
    LeoSocks
    Apr 10, 2017 via iPhone
    13
    楼主,捂脸,逃
    crab
    crab
    Apr 10, 2017❤️1
    14
    楼主是缺铜币了吧
    thinkSky
    thinkSky
    Apr 10, 2017
    15
    我特么差点 笑死了 是真的
    chairuosen
    chairuosen
    Apr 10, 2017
    16
    LS 们,那段 html 只能在网页里显示一个 json 字符串,这才是楼主的意思
    hundan
    hundan
    Apr 10, 2017 via Android
    17
    我想了想,楼主应该是刚学了 json 吧
    yulitian888
    yulitian888
    Apr 10, 2017
    18
    可以围观一下吗?
    容我先笑一会!
    160432871
    160432871
    Apr 10, 2017
    19
    V2EX 不能删贴的,我觉得这点非常好。说出去的话泼出去的水,所以说话前要慎重。
    coo
    coo
    Apr 10, 2017❤️1
    20
    我试了, chinaz 的代码可能确实有点问题,用 script 标签的方式引用会返回:

    document.write("{ip:'xx.xx.xx.xx',address:'xx 省 xx 市 联通'}")

    而这段代码在界面上就成了一段 JSON ,和预期的效果并不是很符合。
    Kilerd
    Kilerd
    Apr 10, 2017 via iPhone
    21
    生词本写完了?
    wly19960911
    wly19960911
    Apr 10, 2017
    22
    @coo 在我这里都只是返回了一串 json ,不知道是不是因为本地 html 测试的原因,都没看见 jsonp ,很奇怪。
    kuaner
    kuaner
    Apr 10, 2017
    23
    角度刁钻
    killerv
    killerv
    Apr 10, 2017
    24
    @wly19960911 我测试了一下,本地 html 只返回 json ,在服务器上访问是 document.write("{ip:'xx.xxx.xx.xxx',address:'xxxx'}")
    wly19960911
    wly19960911
    Apr 10, 2017 via Android
    25
    @killerv
    好的,看来他们是检验了下相关的参数返回不同结果的了,不过不是返回自定义的 jsonp 太难看了
    lijsh
    lijsh
    Apr 10, 2017❤️1
    26
    错就错了,还继续钻牛角尖嘲讽别人,不地道。
    killerv
    killerv
    Apr 10, 2017
    27
    @wly19960911 我也觉得不正常,不如提供一个 jsonP 的更加方便。
    vipwpcom
    vipwpcom
    Apr 10, 2017
    28
    我来看热闹的
    ktlb
    ktlb
    Apr 10, 2017
    29
    装逼失败
    vertas
    vertas
    Apr 10, 2017
    30
    诚然, chinaz 是有不当之处,但是这帖子将成为楼主你永久的黑点。
    iPhone8
    iPhone8
    Apr 10, 2017
    31
    又要开新号了,这个号基本废了
    yulitian888
    yulitian888
    Apr 10, 2017
    32
    document.write 的写法并不像楼主补充中说的那么不可理解吧
    楼主不要忘了,这个域名被访问的时候,访问者并不一定是终端用户的浏览器,还有可能是一些自己写的爬虫......
    yulitian888
    yulitian888
    Apr 10, 2017
    33
    补充一下,从代码语义上也说得通,<script type="text/javascript" src="......"></script>输出一个 js 片段,语义是合理的。而输出一个 json 对象么,不觉得难看?
    rrfeng
    rrfeng
    Apr 10, 2017
    34
    所以这个站就被大家玩儿坏了?

    打不开了,提示请联系站长 QQ ……
    haocity
    haocity
    Apr 10, 2017
    35
    @yulitian888
    document.write 直接把 json 写出来是不是有点太那个了?
    难道还要写进去个标签 再把 json 读出来用?
    Marfal
    Marfal
    Apr 10, 2017 via Android
    36
    @smallerpig 我也来挑一下刺哈,“贻笑大方”前面不需要加“被”,这个成语表示被人取笑的意思
    Shura
    Shura
    Apr 10, 2017 via Android
    37
    每次遇到这样的帖子都庆幸 V2EX 不能删帖。
    viosey
    viosey
    Apr 10, 2017 via Android
    38
    今日最佳 doge
    Finest
    Finest
    Apr 10, 2017❤️2
    39
    这个是支持 jsonp 协议的。。
    $(document).append('<script type="text/javascript" src="http://ip.chinaz.com/getip.aspx?callback=t123"></script>')

    t123({ip:'',address:''})
    Finest
    Finest
    Apr 10, 2017
    40
    文档没写支持 jsonp ,这个 chinaz 肯定做得不够好了

    但 LZ 说自己都做了那么多年前端了,经验总会有吧,试试加个 callback 参数不用多少时间
    artisan
    artisan
    Apr 10, 2017
    41
    震惊! Chinaz 的 ip 查询代码在调戏用户智商?!
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Apr 10, 2017 via iPhone
    42
    喵喵喵?
    402645707
    402645707
    Apr 10, 2017
    43
    你就算喷它用 iis+aspx 黑你的人也不会像现在这样
    smallerpig
    smallerpig
    Apr 10, 2017
    44
    @Marfal 哈哈,谢谢提醒~
    sgissb1
    sgissb1
    Apr 10, 2017
    45
    非 web 开发人员表示看不明白,求说破的。
    Antidictator
    Antidictator
    Apr 10, 2017 via Android
    46
    @160432871 我每次发帖之前都查查自己用词是否准确😂😂😂
    402645707
    402645707
    Apr 10, 2017 via Android❤️2
    47
    @sgissb1
    chinaz 使用说明:把那个盒子拿过来,里面是方便面,可以吃
    楼主的使用方法:把盒子打开,把里面的料包拿出来问这有什么用,又不能吃,智障吗,我难道还要自己准备面
    402645707
    402645707
    Apr 10, 2017 via Android
    48
    @sgissb1 确切一点的话楼主应该拿着面饼和料包问这怎么吃,碗呢
    lslqtz
    lslqtz
    Apr 10, 2017
    49
    没必要嘲讽楼主。
    我的反应也是这样,只能说楼主没多测试。
    而且站长这样做本来也是不太正确的,因为有些站点会禁用 Referer ,其次这个似乎是直接 write 出了 json 。
    而且关于其它协议没有做详细的说明,所以我不觉得楼主有什么问题。
    zhihaofans
    zhihaofans
    Apr 10, 2017 via iPhone
    50
    看了一下楼主的回复我觉得不能怪楼主
    ichou
    ichou
    Apr 10, 2017 via iPhone
    51
    @hand515 专业
    lslqtz
    lslqtz
    Apr 10, 2017
    52
    @zhihaofans 我也看了下回复,所以补充一下我之前的回复:仅针对这个问题。
    alwayshere
    alwayshere
    OP
    Apr 10, 2017 via iPhone
    53
    @402645707 我是真心请教你一下,这个 chinaz 的代码该怎么用?比如我想实现一个效果,在客户端浏览器显示:您当前的 IP 为: xxx.xx.xx.xxx,位于 xxxx ,通过 chinaz 的这段 js 怎么实现?小白请教一下,如果不行的话,您可不可以承认自己智障呢?
    realpg
    realpg
    Apr 10, 2017
    54
    我觉得楼主说的一点毛病没有

    上面几乎所有嘲讽楼主的都没看问题么


    根据 chinaz 的说明和延时是这样的 上面是代码 下面是效果



    实际我把这段代码 copy 到我的网站是这样的
    sgissb1
    sgissb1
    Apr 10, 2017
    55
    @402645707 谢谢纵欲看明白了,我看 lz 的帖子当时也觉得奇怪,发现一群人喷他,当时还站在 lz 一边。
    weiceshi
    weiceshi
    Apr 10, 2017❤️1
    56
    @alwayshere 你要的用法



    代码在这里(晚饭后出来散步,看到这个帖子,实在看不下去,一半是手机编辑的,所以格式有点乱)
    http://codepen.io/anon/pen/wJVXqJ
    402645707
    402645707
    Apr 10, 2017
    57
    我想说就算 document.write 了
    你直接 js replace 不就完事了
    高中生路过, js 自学了一个网上改完之后发现楼上有更好的正解

    准运维表示楼主垃低了我心目中前端的智商水平
    xz
    xz
    Apr 10, 2017 via Android
    58
    @402645707 现在小孩子都这么毒吗
    why1
    why1
    Apr 10, 2017 via Android
    59
    Content-Type: text/html; charset=utf-8
    喷吧
    shpasspass
    shpasspass
    Apr 10, 2017
    60
    html 部分↓
    <div class="aa"><script type="text/javascript" src="http://ip.chinaz.com/getip.aspx"></script></div>
    js 部分↓
    var sss=$('.aa').html().replace(/<script.*script>/ig,'')
    console.log(eval("("+sss+")").ip)
    console.log(eval("("+sss+")").address)
    mingyun
    mingyun
    Apr 10, 2017
    61
    @weiceshi nice
    Mitt
    Mitt
    Apr 10, 2017
    62
    想不通为什么回复的人大部分用一种非官方解决方案去嘲讽 LZ 我去看了一下 ip.chinaz.com 的源码 他们甚至自己演示的代码展示效果都是直接渲染到页面中的 很明显 “把下面一小段代码加到你的主页中即可在您的网页上中显示来访用户的 IP 及其地区!” 是一种极大的误导啊 虽然说技术手段解决这个问题不是问题 但是给出这段代码好歹给个官方支持的使用方法吧? PS: 建议 LS 说话不要上来问候智商,先想一遍为什么 LZ 会发这个帖子问这个问题 再来问候智商
    alwayshere
    alwayshere
    OP
    Apr 10, 2017 via iPhone
    63
    @shpasspass 一个 jsonp 就可以搞定的, chinaz 非逼得这么做,感觉是脱了裤子放屁
    weiceshi
    weiceshi
    Apr 10, 2017 via Android
    64
    @alwayshere
    39,56 两楼都告诉你支持 jsonp 了,你还在这里打滚?
    patx
    patx
    Apr 11, 2017
    65
    v2 不能删帖有时还挺好的。。。
    ID2333
    ID2333
    Apr 11, 2017
    66
    我就静静看(⊙o⊙)~磕嗑瓜子儿
    ACTom
    ACTom
    Apr 11, 2017
    67
    不管用户能怎么 hack 得到想要的结果,那也不能改变文档本来就有问题这一点
    402645707
    402645707
    Apr 11, 2017
    68
    @xz 站长高中的时候已经把 V2EX 建起来了
    kiwi95
    kiwi95
    Apr 11, 2017
    69
    这就是做了前端这么多年的水平??不是很懂前端
    killerv
    killerv
    Apr 11, 2017
    70
    今天看到这个帖子成了热门帖,有必要这么嘲讽吗?
    “把下面一小段代码加到你的主页中即可在您的网页上中显示来访用户的 IP 及其地区!”
    chinaz 的说明是有问题的,直接按照他的说明操作显示的确实不是预期效果。我认为,只要自己的产品被别人使用,就应该提供正确的使用文档,而不是让其他人去猜、测试。
    ragnaroks
    ragnaroks
    Apr 11, 2017
    71
    一黑黑两
    flyingghost
    flyingghost
    Apr 11, 2017
    72
    事情是这样的:
    1 ,上古时期,大家都是提供<script></script>标签,内容是直接 document.write ,文档如实描述。
    2 ,后来发现,这种方式打包了数据和展示,并不很科学。一个接口,应该只做接口该做的事:如实返回数据,让应用层去决定如何展示。所以,返回了 json 结构体。
    3 ,无奈老用户非常多,让大家都修改代码不现实。于是做了兼容:如果是浏览器直接访问,返回 document.write (和以前逻辑保持一致);如果是 ajax 调用,只返回 json 数据。(显然这点没做好)
    4 ,再后来,为了方便使用者,支持了 jsonp 。
    5 ,在做 234 演进的时候,文档 1 并没有做任何更新。

    看问题,要有历史观和发展观。/doge
    yulitian888
    yulitian888
    Apr 11, 2017
    73
    @flyingghost 言之有理
    也是一个文档和程序脱节的好例子
    ming2050
    ming2050
    Apr 11, 2017
    74
    这事是楼主一生的黑点了。。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1396 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 173ms · UTC 18:51 · PVG 02:51 · LAX 10:51 · JFK 13:51
    ♥ Do have faith in what you're doing.