添加报告:重复的 IP 地址

Is it possible for a report to be added under DASHBOARD > REPORTS, to list accounts that share the same IP address?

Or, if the processing is too heavy to do large forums, the report could potentially be capped eg: checks all new accounts from the last 3mths.

Discourse identifies such duplicates when looking up a specific user, but it would be useful to see this information across all users. Currently I have no tool to identify this, other than checking individual users one at a time.

I realise that a shared IP doesn’t always mean it’s the same person and that some IP addresses are shared by multiple users on a network, but it would still be very useful.

Possible?

5 个赞

You can do a query with data explorer plugin to find users with same ip.

There may be an example in What cool data explorer queries have you come up with?.

5 个赞

Thanks Jay. We don’t have the data explorer plugin on our hosted instance.

Is there any chance of this being added to the standard Discourse Dashboard reports, without needing the data explorer plugin?

This feature would be useful for most discourse forum staff, as users with multiple accounts is a pretty common forum experience. For me, it would be more useful on a regular basis than most of the existing Dashboard reports.

Ask yourself, what is the maximum number of different IP addresses?

I think it would be relatively inexpensive to have count(ips) vs. count(distinct(ips)) to give a general idea of how many accounts have used IPs used by other accounts.

More expensive would be an “on demand” search for particular IPs

Depending on how many accounts / IPs a forum has, finding all non-distinct IPs could be extremely expensive. If my math is close, the formula for finding out how many checks would be needed would be something like
(n*(n+1)/2)-n
where n is the total number of IPs

* eg. for 100, that’s 4950, for 1000 that’s 499500. You get my point.

3 个赞

我不确定这在系统资源方面会涉及什么,但确实有用的是获得一条版主消息和/或一份报告,该报告能够让我们获取与同一 IP 地址关联的多个成员列表,这些关联可以通过注册 IP 或最后登录 IP 来识别。

目前,发现重复 IP 的唯一方法是手动检查(这并不一定意味着某个成员拥有多个账户)。这意味着我们只有在某人制造麻烦时才会发现。

而可能发生的情况是(虽然非常罕见,但对于有动机的网络捣乱者来说可能是反复出现的问题):有人创建大量账户,将它们“升级”到可以发帖的级别,但除此之外保持休眠状态。对于一个人来说,要足够自律地使用 VPN 来隔离 IP 并执行这一过程是非常困难且耗时的。因此,在提升账户信任等级的过程中,捣乱者通常会在某个环节出错,使用“真实”IP 登录。如果版主能在发生这种情况时收到提醒,或者在某个可供版主团队定期查阅的报告中显示此类情况,将极大地有助于防止捣乱者利用大量休眠的傀儡账户制造大规模扰乱。

但这是否会占用过多的系统资源呢?

2 个赞

实现应用的方式多种多样,但我可以分享我的经验。

  • 我获取了一组包含与 Discourse 论坛关联的 IP 地址的数据(约 25 万个账户)。
  • 我编写了 PHP 代码(注意,不是 Ruby)来解析 CSV 文件并将数据插入 MySQL 数据库(注意,不是 PostgreSQL)。
  • 我下载了 MaxMind 地理定位数据库的已弃用版本。
  • 我编写了代码进行 INET 数组与数字之间的转换,并将结果插入数据库。
  • 我将单个 Discourse IP 地址与对应的 MaxMind 地理位置进行匹配(即使在数据量有限的情况下,例如 1 万个账户,此步骤也可能需要运行两个小时以上——这是一个代价较高的范围查询)。

一旦我拥有了“基础”数据,我只需要更新自上次以来的新增数据。执行 [每周] 更新从未超过几分钟。

一旦我获得了所需的数据,按位置运行查询并不慢。

1 个赞

谢谢你的分享……抱歉我之前没注意到,现在才看到,非常感谢。我会转给我们的管理员,我们会讨论一下是否值得投入精力去处理。

我们有几千名会员,经常有人注册额外账号。有时是出于恶意,但很多时候似乎并无恶意。这很少构成严重问题。

一年中只有少数几次,我们会封禁某人,而他们又会注册新账号来捣乱。到目前为止,处理起来虽然烦人,但也不算什么大事。而且到目前为止,他们最终都会失去与我们周旋的耐心,不再继续胡闹,要么消失,要么重新注册账号后低调行事,遵守规则,不再制造麻烦。在这种情况下,这其实算不上真正的问题。

1 个赞