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 (Superseded) 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 목록으로 확인할 수 있는 보고서를 제공하거나, 또는 Mod 메시지(관리자 알림)를 받을 수 있다면 매우 유용할 것입니다.

현재 중복된 IP(반드시 한 회원이 여러 계정을 가지고 있다는 뜻은 아님)를 발견하는 유일한 방법은 수동으로 확인하는 것입니다. 즉, 누군가 문제를 일으킬 때만 알게 되는 셈이죠.

그리고 드물지만, 의도적인 트롤(troll)의 반복적인 문제로 발생할 수 있는 상황은 다음과 같습니다. 누군가가 여러 개의 계정을 만들어서 게시글을 작성할 수 있는 수준까지 "레벨 업"을 시키고, 그 외에는 휴면 상태로 두는 것입니다. VPN을 사용하여 IP를 분리할 정도로 충분히 규율 있게 이 작업을 수행하는 것은 매우 어렵고 노동 intensive합니다. 따라서 신뢰 등급(Trust Level)에서 계정을 레벨 업하는 과정 중 어느 시점에 트롤은 실수로 “실제” IP로 로그인하게 됩니다. 이때 관리자에게 알림이 가거나, 관리자들이 정기적으로 참고할 수 있는 보고서에 이런 내용이 표시된다면, 트롤이 휴면 상태의 더미 계정을 대량으로 사용하여 혼자서 큰 혼란을 일으키는 것을 사전에 차단하는 데 큰 도움이 될 것입니다.

하지만 이것이 시스템 리소스에 과부하를 줄 정도로 부담이 될까요?

2개의 좋아요

앱을 구성하는 방법은 항상 하나 이상 있지만, 제 경험을 나눠 드릴 수는 있습니다.

  • Discourse 포럼과 관련된 IP가 포함된 데이터 세트(약 25만 개 계정)를 확보했습니다.
  • CSV를 파싱하고 데이터를 MySQL 데이터베이스에 삽입하는 PHP 코드를 작성했습니다.(*참고: Ruby가 아닙니다)
  • 비추천(deprecated) 상태인 MaxMind 지리 위치 데이터베이스를 다운로드했습니다.
  • INET 배열 ↔ 숫자 변환을 수행하는 코드를 작성하고 값을 데이터베이스에 삽입했습니다.
  • 개별 Discourse IP를 해당 MaxMind 위치와 매칭했습니다. (1만 개 계정과 같이 제한된 수의 경우에도 이 단계는 2시간 이상 걸릴 수 있습니다 - 비용이 많이 드는 범위 선택 쿼리)

“기본” 데이터를 확보한 후에는 마지막 업데이트 이후 새로 추가된 것만 업데이트하면 되었습니다. [주간] 업데이트를 실행하는 데는 몇 분 이상 걸린 적이 없습니다.

관심 있는 데이터를 확보한 후에는 위치별 쿼리를 실행하는 것이 느리지 않았습니다.

1개의 좋아요

감사합니다… 이걸 못 봤네요, 지금까지 정말 감사했습니다. 관리자분께 전달해서 작업할 가치가 있는지 논의해 보겠습니다.

수천 명의 회원이 있고, 추가 계정을 만드는 사람들이 꽤 자주 있습니다. 때로는 악의적인 의도로, 때로는 악의가 전혀 없어 보일 정도로 그렇게 하죠. 심각한 문제는 드뭅니다.

제 생각에는 일 년에 몇 번 정도 누군가를 차단했는데, 그 사람이 귀찮게 하려고 추가 계정을 만드는 경우가 있습니다. 지금까지는 처리하기가 귀찮긴 했지만, 그렇게 큰 문제는 아니었습니다. 그리고 지금까지는 그들이 우리와 시간을 보내며 이런 난동을 부릴 의지를 잃고, 사라지거나… 아니면 계정을 만들고 실제로 조용히 규칙을 지키며 문제를 일으키지 않는 경우가 있었습니다. 그런 경우에는 정말 문제가 되지 않죠.

1개의 좋아요