PHP-скрипты для записи логов DNS-сервера в MySql и удобного просмотра.
install.php
1) Если в текущей папке содержится файл conn.php, то делаем die{"install"};
2) При заходе на скрипт отображается форма ввода данных подключения к MySql, то есть: mysql_host mysql_db mysql_user mysql_pass
3) После получения данных от формы подключаемся к MySql.
3.1) При успешном подключении создаем таблицы. "create table" запросы будут находиться в файле data.sql
dnslogs таблица и примеры данных:
- timestamp (01.01.2014 11:11:11)
- domain (test27.domain.ru - домен, на который поступил запрос)
- dns_host (dns1.start.ru - хост, с которого подключились к DNS-серверу. Определяется по IP)
- dns_ip (11.11.11.11 - IP, с которого подлючились к DNS-серверу)
- dns_mainhost (start.ru - корневой домен)
- dns_country (Russia - на данный момент заполняем как null)
- dns_city (Moscow - на данный момент заполняем как null)
- dns_org (STAR.RU - на данный момент заполняем как null)
3.2) Создаем файл conn.php c настройками подключения к MySql.
3.3) Отключаемся от MySql и удаляем файл data.sql.
dnslog.php (скрипт для сохранения логов dns-сервера в MySql)
1) Настройки подключения берем из conn.php
2) За раз методом POST через переменную dnslogs (dnslog.php?dnslogs=...) будет передаваться одна или более строк.
Каждая строка будет иметь вид:
date time domain IP
2.1) При заходе на скрипт без передачи параметров будет отображена форма выбора файла и кнопка "SEND". После отправки файла выполняем функции 3) и 3.1).
Файл будет содержать строки вида: date time domain IP
3) Каждую строку разделяем через пробел и присваиваем значения переменным:
$date=дата из строки; $time=время из строки; $domain=домен из строки; $dns_ip=IP из строки; $dns_host=gethostbyaddr($dns_ip);
$dns_mainhost=корневое имя домена из $dns_host (если $dns_host=publicdns17.google.com, то $dns_mainhost=google.com)
Используя maxmind.com базы данных (https://www.maxmind.com/ru/opensource), определяем страну и город по $dns_ip. Присваиваем значения переменным $dns_country и $dns_city, а $dns_org=null.
3.1) Записываем данные в MySql без дубликатов IP для определенного домена. Пример: делаем запрос select dns_host from dnslogs where domain=$domain and dns_ip=$dns_ip
Если результатов 0, то добавляем новую запись.
dnsadmin.php (скрипт для просмотра логов DNS)
1) Авторизация по логину и паролю
2) Отображение всех данных с сортировкой по timestamp (Descending order) в виде:
#domain
#timestamp #dns_host #dns_ip #dns_country #dns_city #dns_org
3) Удобный поиск по колонке domain.
Оплата через PayPal.
Оглашайте сроки и цены.
Хотелось бы реализовать как можно скорее.