Skip to content

maxchang3/BiliReveal

Repository files navigation


我不喜欢 IP 属地,但是你手机都显示了,为什么电脑不显示呢?

BiliReveal

Greasy Fork 总下载量

一个用户脚本,让哔哩哔哩网页版评论区也能显示 IP 属地,支持大部分场景

使用环境

Tip

如果你使用非推荐环境,请确保你的用户脚本管理器支持 unsafeWindow

安装方式

推荐的用户脚本管理器(Tampermonkey、Violentmonkey、Stay 等):

Lite 版本(FireMonkey 等对沙箱隔离要求严格的脚本管理器 / 需要 Page Context 注入的场景)

我们额外提供了一个 Lite 版本。不依赖 GM API(用户脚本的 metadata 在其他环境中会被视作单纯的注释),因此可以运行在更多环境中,而不仅限于传统的用户脚本管理器。

由于移除了 GM API,「文本替换」功能将不可用。同时,Lite 版本额外添加了 @inject-into page 配置,使脚本能够直接完整地注入网页上下文中(目前仅 Firefox 支持)。

对于 FireMonkey,由于目前无法通过常规方式兼容运行,因此推荐使用 Lite 版本。

得益于运行时无关的设计,Lite 版本也可以更加灵活地部署到各种环境中,例如:

  • FireMonkey;
  • AdGuard 的用户脚本功能;
  • 自定义浏览器扩展;

从 GitHub Releases 安装 Lite 版本

常见问题

  • 为什么个人主页的 IP 属地没有显示?

  • 为什么我的评论区没有显示 IP 属地?

目前支持的场景

点击展开完整列表
  • 视频(普通视频、番剧(影视)、收藏列表播放页)评论区
  • 话题评论区
  • 动态评论区
  • 个人主页动态评论区
  • 专栏(文章)作者 & 评论区
  • 节日页(festival)评论区(如「拜年祭」」
  • 活动页(blackboard)评论区(如「拜年祭预约页」)
  • 课程评论区
  • 小黑屋评论区
  • 漫画详情页评论区

(未作特殊说明均支持新旧版)

配置选项

文本替换

支持对 IP 属地文本 进行自定义替换,用于优化展示效果或满足国际化需求。

使用步骤:

  1. 打开脚本管理器菜单,点击 「更新替换规则」

  2. 在弹出的对话框中输入 JSON 格式的替换规则,例如:

    去除「IP 属地:」前缀,仅显示地区名称,可以使用如下规则:

    { "IP属地:": "" }
  3. 点击确定后,页面会自动刷新并应用新规则

规则说明:

  • 规则需为 JSON 对象:键表示原始文本,值表示替换后的文本
  • 支持配置多条规则,并按顺序依次执行
  • 所有页面中的 IP 属地信息都会应用这些替换规则

原理

虽然 B 站未在 Web 前端界面展示 IP 属地信息,但相关数据实际上仍存在于后端接口及前端组件内。本脚本的工作原理是:在评论组件(完成)渲染时,将 IP 属地数据注入到 DOM 中。

具体来说,目前 B 站前端评论区存在三种实现:

  • 旧版评论(Vue 2):基于 Vue 2 实现,目前仅在旧版页面存在。

    • 策略:通过 Hook window.bbComment ,重写评论插入事件,在期间插入 IP 属地。
  • 新版评论(Vue 3):基于 Vue 3 实现(comment-pc-vue.next.js)。

    • 策略:
      • 由于不存在全局的 bbComment 对象,通过 MutationObserver 监听评论区的 DOM 变更,捕获新插入的评论节点,解析其原始数据并渲染 IP 属地。
      • 自 V1.5.8+ 起,由于某次更新后 __vue__ 不再存在于元素下,引入 Hook Vue3 app__vue__ 实例手动挂载至目标 DOM 元素。
  • 新版评论(Lit):基于 Lit 的 Web Components(comment-pc-elements.next.js),目前存在于大部分常用场景。

    • 策略:通过 Hook window.customElements.define,拦截 ActionButtonsRender,继承并重写其生命周期方法 update(),在组件更新渲染时完成 IP 属地的插入。

感谢

Stargazers over time

Stargazers over time

About

Reveal IP location on Bilibili web. 在哔哩哔哩网页版显示 IP 属地。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors