V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lution
V2EX  ›  程序员

有人知道关于微信朋友圈分享外链时,链接附带 nsukey 参数的含义吗?

  •  
  •   lution · 2016-10-12 11:57:20 +08:00 · 14712 次点击
    这是一个创建于 2965 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是这样的,昨天我的一个页面貌似被分享到了微信的朋友圈,然后获得了大量的点击,形如

    /abc?from=timeline&isappinstalled=0
    

    开始时链接只是附带了 from 和 isappinstalled 这两个参数,含义很好理解,这些请求所附带的 User-Agent 和 ip 看起来也都是正常的,能看到设备型号、系统版本之类的。这个我自己分享到朋友圈后可以复现

    对于不带 nsukey 参数的请求来看,首先应该可以肯定都是真实点击, 300 多个来源 IP 中,绝大多数都来自北京(北京某高校 IP ,北京市教育网 IP ,北京市运营商应用在基站/公共 WIFI 的 IP ),基本每个 IP 只访问了一次,从 User-Agent 来看都是从微信的朋友圈里面点进来的,可以理解为,分享人和朋友圈好友基本分布在北京。

    随着访问量的增加,后面很大一部分的请求在上面的基础上又额外附带了一个新的参数, nsukey ,并且基本上每个请求所附带的 key 并不相同,格式是这样的。

    LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
    LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
    LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr0i1aK3QCYeNc34KOIEyq6drDg76FyBc0q2FahJE3nMLQ3D3D
    LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
    LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTr9qxjjKFbInMR2FFO8UVXWzYspCAUdLt2BFwpY4lCDP0nw3D3D
    LrT10s2BxEe8NKrXllu2BPcjGlLDumrxoS4J0yZfg5tTrm5NWAS0Xj41WtngOY0oJZhRc0zIiw4tP36GQcifKPgw3D3D
    

    带有 nsukey 参数的请求看起来稍微有些奇怪。首先,几百个请求的 User-Agent 的请求都是相同的,固定为

    Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/30.0.1599.12 Mobile/11A501 Safari/8536.25 MicroMessenger/6.1.0
    
    

    而且来源的 100 多个 IP 是分布在若干个机房里的多组 IP ,每个 IP 请求了数次到数十次不等,而且机房并不在北京,有上海的,有深圳的,选三组举例

         38 117.185.24.135
         30 117.185.24.151
         32 117.185.24.152
         34 117.185.24.243
         45 117.185.27.102
         36 117.185.27.103
         51 117.185.27.104
         28 117.185.27.142
         30 117.185.27.143
         38 117.185.27.144
         33 117.185.27.146
         29 117.185.27.147
         37 117.185.27.98
         33 117.185.27.99
         
          3 101.226.125.108
          3 101.226.125.109
          1 101.226.125.113
          1 101.226.125.114
          1 101.226.125.115
          2 101.226.125.116
          2 101.226.125.117
          2 101.226.125.118
          3 101.226.125.119
          3 101.226.125.120
          1 101.226.125.121
          2 101.226.125.122
          2 101.226.125.14
          2 101.226.125.15
          1 101.226.125.18
    
         20 183.232.118.13
         18 183.232.118.14
         15 183.232.118.15
         13 183.232.118.16
         17 183.232.120.37
         19 183.232.120.38
         18 183.232.120.39
         18 183.232.90.143
         16 183.232.90.36
         20 183.232.90.37
         14 183.232.90.38
         16 183.232.90.65
         18 183.232.90.79
         16 183.232.90.80
         21 183.232.90.97
    

    我尝试着自己分享一个测试链接到朋友圈,用自己和身边几个朋友的来点击,都没有附带 nsukey ,这也印证了上面对于不带 nsukey 请求为真实用户点击的猜测。但是隔了一夜看访问记录里,是有带 nsukey 的请求过来的,两种请求出现的时候先后顺序上没有规律,且应该和系统无关( Android & iOS ),在网上找了一下相关资料,发现谈论的人很少,所以来 V 站问问有没有了解的或者研究过同样问题的同学,一起讨论下,这部分带有 nsukey 的请求究竟是真实用户的请求被微信(运营商?)缓存/中转还是被抓取或者其他的?究竟什么条件会触发朋友圈分享链接时自动加上 nsukey 这个参数?

    4 条回复    2018-12-24 01:31:04 +08:00
    muyunyan
        1
    muyunyan  
       2016-10-12 13:37:39 +08:00
    试试自己多点几次同样的链接会不会出发微信附带 nsukey 的逻辑?
    按照网上已有的资料猜的话,应该是多次触发产生,微信帮助网站开发者鉴别是否为同一用户的多次点击的行为。
    lution
        2
    lution  
    OP
       2016-10-12 16:01:22 +08:00
    @muyunyan 不会。。。而且从数量上来看,应该不是多次触发产生的。数量太高,我感觉这部分请求不像是用户的请求了。
    nicoljiang
        3
    nicoljiang  
       2016-10-13 11:20:52 +08:00
    可能是搜狗的 spider 呢
    lingyi95
        4
    lingyi95  
       2018-12-24 01:31:04 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:36 · PVG 03:36 · LAX 11:36 · JFK 14:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.