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

B 站客户端是如何检测“当前网络可能是收费 WIFI(移动网络)”的?

  •  
  •   yksoft1ex · 180 天前 · 3007 次点击
    这是一个创建于 180 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我觉得可能是检测机子 IP 段,比如 192.168.43.x (安卓的网络共享)、172.20.10.x ( iOS 的网络共享)等。使用专用的 mifi 之类设备,就检测不出了。
    21 回复  |  直到 2019-07-15 08:04:26 +08:00
        1
    leafre   180 天前
    我觉得跟你觉得一样
        2
    Tianao   180 天前 via iPhone
    我猜是根据 SSID 的个人热点属性。
        3
    binux   180 天前   ♥ 2
    因为连上 wifi 的时候,wifi 就会告诉你,它自己是个无线热点( portable hotspot )。
        4
    yksoft1ex   180 天前
    @Tianao 这个数据在 Android 的 Java 层里能获得?
        5
    gramyang   180 天前 via Android
    你问这个问题肯定是没有 google 过的,安卓自带接口可以检查当前网络是 2g 还是 3g 还是 4g 还是 wifi
        6
    passerbytiny   180 天前
    这东西难道不是系统提供的吗,而且还很有可能不是主动检测而是事件监听。

    而且也不一定要客户端检测,服务器也可以检测到之后再推送给客户端。
        7
    lion9527   180 天前
    我感觉这个属于自作聪明的过度设计,也没有关闭的选项,非常恶心人。
        8
    yksoft1ex   180 天前
    @Tianao 好像还真能,3x0 的奇酷 UI 的 SystemUI 就能显示 Wifi 属于安卓和 iOS 热点。但是奇怪的是,iOS 能识别 iOS 共享的热点,却不识别安卓共享出的热点。
    @binux 然后如果是安卓的话如何修改其分享出热点的 IP、DHCP 的 IP 池,以及使其不声明自己是热点?
        9
    shehuizhuyi   180 天前
    @gramyang 是连接 wifi 之后 提示可能是收费 wifi
        10
    binux   180 天前
    @yksoft1ex #7 反正 MIUI 是可以设置 device identification 的,还有 iOS 当然能识别安卓的共享热点。
        11
    yksoft1ex   180 天前
    @binux 至少 SpringBoard 上,安卓共享的热点是不会显示那个回形针标志的。
        12
    yksoft1ex   180 天前
    @binux ConnectivityManager.isActiveNetworkMetered() 能获得当前连接的热点是否被用户自己设置为计费 Wifi,但没说这个属性能被自动检测出来。
        13
    whileFalse   180 天前
    如果能获得路由器 mac 地址,可以根据这些 mac 地址反查对应的设备提供商。
        14
    Love4Taylor   180 天前
    Android 本身是有自动识别计费 WiFi 功能的. 或许看看 AOSP 相关部分?
        15
    0x4F5DA2   180 天前 via iPhone
    安卓 SDK 里有接口,网络变动还有事件可以监听
        16
    yksoft1ex   180 天前
    @whileFalse 这个要求定位权限吧?另外,很多山寨的安卓机里面各种信息包括 IMEI、MAC 都是可以改的。

    @0x4F5DA2
    @Love4Taylor ConnectivityManager.isActiveNetworkMetered() 能获得当前连接的热点是否被用户自己设置为计费 Wifi,但没说这个属性能被系统自动检测出来。
        17
    nanaw   180 天前 via Android
    @whileFalse 说到 mac 地址,都 9102 年了 Android P 应用居然还可以不需要权限取得本机 mac,真不知道 Google 是怎么想的
        19
    nanaw   179 天前 via Android   ♥ 1
    @phy25 装个 devcheck 自己看能不能获取到。 权限接口封过但 Java 层还能获取
        20
    catalina   179 天前 via Android
    不不不,不太对,并不是读取的“是 wifi 还是 xg 还是移动热点”。
    我在一个收费 wifi(不是蜂窝数据这类的,是我们学校的公共热点,每个月流量有限,ip172.20.18.0/24)下使用 b 站,它还是会弹出来“可能是收费 wifi ”。
    appops 检测到了它使用了 wifi_scan 权限。但禁止后重启 b 站 app,它还是提示了,所以也不是这个。
    话说,番剧页面就没有这个提示哎?
        21
    luckycatio   96 天前 via Android
    @binux 他把我家的 wifi 识别成了收费 wifi,我家的 ip 端是 10.0.0.1
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   832 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 22:00 · PVG 06:00 · LAX 15:00 · JFK 18:00
    ♥ Do have faith in what you're doing.