Всем привет.
Решил создать тему, в качестве заметки для себя или возможно ком-то тоже пригодится, а может кто-то уже это делал и напишет свой вариант.
В общем, у меня в сетки используется только один статический ip на всех клиентов и недавно столкнулся с тем, что кто-то из клиентов начал парсить google и yandex, после чего у всех клиентов постоянно вылазила капча, задался целью найти и наказать
Чтобы определить кто это делает, нам нужно из базы вытащить id клиента и ip к которым он обращался за сутки, эти данные находятся в таблице вида
z2013x10x24.
Чтобы вытащить инфу по клиенту и поместить в файл для изучения, я выполнял:
echo "SELECT inet_ntoa(ip) from z2013x10x24 where mid='62'" | mysql -p<MySQL password> bill | sort | uniq -c | sort -n > /home/clients/user
mid='62' - id клиента, который можно глянуть в админке биллинга
/home/clients/user - файл куда нам все сохранять
в итоге в файле у нас записывается следующее:
1013 31.42.115.11
1268 157.56.126.52
1986 87.240.131.102
2367 217.69.141.171
2468 87.240.131.104
2790 87.250.250.79
2908 157.55.130.166
3171 217.20.147.94
3395 94.100.180.215
4364 173.194.70.189
Первый столбец - количество запросов, второй - ip куда юзверь обращался.
Проверив через
я увидел какому ресурсу принадлежит ip.
Конечно это не идеальный вариант, а кривой и долгий, но другого способа я не нашел...
Хочу также привести примеры вывода обращений к ip со всей сети за определенный день:
echo "SELECT inet_ntoa(ip) from z2013x10x24" | mysql -p<MySQL password> bill | sort | uniq -c | sort -n > /home/ips.txt
ips.txt - сюда помещаем инфу по ip-шникам
awk '{print $2}' /home/ips.txt | xargs -I '{}' host '{}' >> /home/hosts.txt
hosts.txt - сюда помещаем инфу про хосты, и с этой инфы уже можно получить какие именно запросы идут на гугл или на яндекс:
cat /home/hosts.txt | grep google >> /home/google.txt
или
cat /home/hosts.txt | grep yandex >> /home/yandex.txt
Операясь на эту инфу можно определить куда больше всего было запросов.