重複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.

データエクスプローラープラグインを必要とせずに、これを標準の Discourse ダッシュボードレポートに追加する可能性はありますか?

この機能は、複数のアカウントを持つユーザーが非常に一般的なフォーラム体験であるため、ほとんどの Discourse フォーラムスタッフにとって有用です。私にとっては、既存のダッシュボードレポートのほとんどよりも、定期的により有用になるでしょう。

自分に問いかけてみてください。異なる IP アドレスの最大数は何でしょうか?

count(ips)count(distinct(ips)) を比較することで、他のアカウントが使用した IP アドレスを利用したアカウントの概数を知ることは、比較的安価に実現できると思います。

よりコストがかかるのは、特定の IP に対する「オンデマンド」検索です。

フォーラムのアカウント数や IP 数によっては、すべての重複 IP を特定することが非常に高価になる可能性があります。私の計算が近ければ、必要なチェック回数を求める式は次のようなものになるでしょう。
(n*(n+1)/2)-n
ここで、n は IP アドレスの総数です。

  • 例えば、100 の場合、4950 回、1000 の場合、499500 回のチェックが必要です。私の意図はお分かりいただけるでしょう。
「いいね!」 3

システムリソースの面でこれが何を伴うかはわかりませんが、登録時または最終アクセスIPを通じて、同じIPアドレスに複数のメンバーが関連付けられている場合に、モデレーターへのメッセージ通知や、そのようなIPアドレスのリストを取得できるレポート機能があると非常に役立ちます。

現在、重複IP(必ずしも1人のメンバーが複数のアカウントを持っていることを意味するわけではありません)を発見できる唯一の方法は、手動での確認です。つまり、誰かが問題を引き起こした場合にしか気づけません。

そして、ごく稀ですが、意欲的なトロールにとって繰り返される可能性のある事態として、人が一連のアカウントを作成し、投稿できるように「レベルを上げる」が、それ以外は放置しておくことが起こり得ます。VPNを使ってIPを分離し続けるほどに、この作業を十分な規律を持って行うのは非常に困難で手間がかかります。そのため、信頼レベルのアップグレードプロセスのどこかで、トロールは通常、どこかでミスをして「実際の」IPでログインしてしまいます。もし、このようなことが起きた際にモデレーターに警告が届くか、またはモデレーターグループが定期的に参照できるレポートにこの情報が表示されるようになれば、複数の休眠中のダミーアカウントを使って大規模な混乱を引き起こそうとするトロールを未然に防ぐのに大きく役立ちます。

しかし、もしかするとこれはシステムリソースを必要としすぎるのでしょうか?

「いいね!」 2

アプリを構築する方法は一つではありませんが、私の経験をお話しします。

  • Discourse フォーラムに関連付けられた IP アドレスを含むデータセット(約 25 万アカウント)を取得しました。
  • CSV を解析して MySQL データベース(注:PostgreSQL ではなく)にデータを挿入する PHP コード(注:Ruby ではなく)を作成しました。
  • 廃止された MaxMind のジオロケーションデータベースをダウンロードしました。
  • INET 配列と数値の変換を行うコードを作成し、値をデータベースに挿入しました。
  • 個々の Discourse の IP を対応する MaxMind のロケーションと照合しました(例:1 万アカウント程度という限定的な数でも、このステップの実行には 2 時間以上かかることがありました。これは高コストな範囲選択です)。

「ベース」データが揃ったら、前回の更新以降に新しく追加されたデータのみを更新すればよくなりました。[週次] の更新を実行しても、数分を超えることは決してありませんでした。

必要なデータが揃えば、ロケーション別 にクエリを実行しても遅くはありませんでした。

「いいね!」 1

ありがとうございます。これに気づかず、申し訳ありませんでした。また、これまで感謝を伝えられなかったことにもお詫び申し上げます。この件を管理者に伝え、対応する価値があるかどうか話し合います。

会員は数千人おり、定期的に追加アカウントを作成する人がいます。悪意がある場合もあれば、悪意が明らかなくない場合もあります。大きな問題になることはめったにありません。

年数回、誰かをBANし、その人が追加アカウントを作って迷惑をかけることがあります。これまで対応に手間取りましたが、それほど大きな問題ではありませんでした。これまで、相手は私たちの時間を奪ってまでそのふざけた行為を続ける意欲を失い、姿を消すか、あるいは新しいアカウントを作って静かに過ごし、ルールを守り、問題を起こさなくなっています。その場合、それは実際には問題ではありません。

「いいね!」 1