Задать вопрос
@cyber01

Как найти дубликаты IP адресов?

Здравствуйте, подскажите, есть база одного из действующих ресурсов, требуется найти дубликаты учеток, зарегистрированных с одного IP.
Составил такой запрос:
SELECT member_id, name as one_from_logins,ip_address, count(ip_address) as logins_by_ip from members where GROUP by ip_address having logins_by_ip > 1 ORDER BY member_id asc

Получил один из логинов (кстати, как вывести все логины для сгруппированных IP?), собственно сам IP и количество логинов, зарегистрированных с одного IP. Но есть один минус - дубликаты выводятся только для полностью совпадающих IP и учетки, зарегистрированные с IP отличающихся на 1-2 октета (3 и 4 октет) не видны.
Собственно вопрос, как можно сделать (если можно - с примером) поиск дубликатов для полностью совпадающих IP, а также отличающихся на 3 и 4 октет?

Заранее спасибо
  • Вопрос задан
  • 2105 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@AlexeyVD
Для поиска и вывода дубликатов можете попробовать следующее:
SELECT *
  FROM members m
  JOIN (SELECT *
          FROM members
          WHERE logins_by_ip > 1
          GROUP BY ip_address
          HAVING COUNT(1) > 1) AS sel ON m.member_id = sel.member_id
  ORDER BY m.ip_address

Тут мы в подзапросе ищем ip, которые дублируются в нескольких учетках, а затем выводим эти учетки, отсортировав по ip.
Для поиска по отличающимся октетам группируйте и сортируйте по:
SUBSTRING_INDEX(ip_address, '.', 2)
или
SUBSTRING_INDEX(ip_address, '.', 3)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
оператор LIKE

ну и freelansim.ru
Ответ написан
@LiguidCool
Я бы вообще выводил во что-то экселеобразное и там разбирал. Не та задача. Или вы хотите эти данные каждому юзеру на сайте выводить?
Ответ написан
Gavr23
@Gavr23
php, mysql, html
Для полностью одинаковых ip
SELECT ip_address, GROUP_CONCAT(name SEPARATOR ', ') AS name from members group by ip_address
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽