Add report: Duplicate IP address

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.

Есть ли шанс, что это будет добавлено в стандартные отчёты панели управления Discourse без необходимости использования плагина Data Explorer?

Эта функция была бы полезна для большинства сотрудников форума Discourse, так как наличие у пользователей нескольких аккаунтов — довольно распространённая ситуация. Для меня она была бы полезнее на регулярной основе, чем большинство существующих отчётов панели управления.

Спросите себя: каково максимальное количество различных IP-адресов?

Думаю, было бы относительно недорого сравнивать count(ips) с count(distinct(ips)), чтобы получить общее представление о том, сколько аккаунтов использовали IP-адреса, принадлежащие другим аккаунтам.

Более затратным вариантом будет поиск конкретных IP-адресов «по требованию».

В зависимости от количества аккаунтов и IP-адресов на форуме, поиск всех недублирующихся IP-адресов может оказаться крайне дорогостоящим. Если мои подсчёты верны, формула для определения необходимого количества проверок будет примерно такой:
(n*(n+1)/2)-n
где n — общее количество IP-адресов.

  • Например, для 100 это 4950 проверок, для 1000 — 499 500. Думаю, вы меня поняли.
3 лайка

Не знаю, какие это потребует системные ресурсы, но было бы полезно получать сообщение модератора и/или иметь отчет, который позволял бы получить список IP-адресов, с которыми связано более одного участника — либо через регистрацию, либо через последний IP-адрес.

В настоящее время единственный способ выявить дублирующиеся IP-адреса (что не обязательно означает наличие у одного участника нескольких аккаунтов) — это ручная проверка. Это означает, что мы узнаём о проблеме только тогда, когда кто-то начинает создавать проблемы.

Кроме того, может случиться (очень редко, но это может стать повторяющейся проблемой с мотивированным троллем), что человек создаст множество аккаунтов, которые он «прокачивает», чтобы получить возможность публиковать сообщения, но в остальном оставляет их неактивными. Очень трудно и трудоёмко для кого-то делать это с достаточной дисциплиной, используя VPN для разделения IP-адресов. Поэтому на каком-то этапе процесса повышения уровня доверия аккаунта тролль обычно совершает ошибку и заходит с «реальным» IP-адресом. И если модераторы смогут получать уведомления об этом или если такая информация будет отображаться в отчёте, который группа модераторов может регулярно проверять, это очень помогло бы предотвратить действия тролля, использующего множество неактивных поддельных аккаунтов для создания масштабных нарушений.

Но, возможно, это потребует слишком много системных ресурсов?

2 лайка

Всегда существует несколько способов создания приложения, но я могу поделиться своим опытом.

  • Я получил набор данных, включая IP-адреса, связанные с форумом Discourse (~250 тыс. аккаунтов).
  • Я написал код на PHP (*примечание, не Ruby) для парсинга CSV и вставки данных в базу данных MySQL (*примечание, не PostgreSQL).
  • Я загрузил устаревшую базу данных геолокации MaxMind.
  • Я написал код для преобразования массивов INET в числа и обратно и вставил значения в базу данных.
  • Я сопоставил индивидуальные IP-адреса Discourse с соответствующими локациями MaxMind (даже при ограниченном количестве, например, 10 тыс. аккаунтов, этот шаг мог занимать более двух часов — дорогостоящий диапазонный запрос).

После получения «базовых» данных мне оставалось лишь обновлять только то, что появилось с момента последнего обновления. Запуск [еженедельного] обновления никогда не занимал более нескольких минут.

Как только у меня были нужные данные, выполнение запросов по местоположению не было медленным.

1 лайк

Спасибо за это… Извините, что я не заметил это раньше, и спасибо, что напомнили. Я передам это нашему администратору, и мы обсудим, стоит ли оно того.

У нас несколько тысяч участников, и довольно регулярно люди создают дополнительные аккаунты. Иногда со злым умыслом, но часто без каких-либо видимых злых намерений. Редко это становится серьёзной проблемой.

Лишь несколько раз в год, насколько я помню, мы баним кого-то, и они создают дополнительные аккаунты, чтобы досаждать нам. До сих пор это было неприятно, но не настолько серьёзно. И пока что они всегда теряли желание тратить время на то, чтобы продолжать эту бессмыслицу: либо исчезали, либо создавали новый аккаунт и вели себя тихо, следуя правилам, не создавая проблем. В таком случае это не на самом деле проблема.

1 лайк