Заходим на второй круг.
1. Проще всего это сделать, если вынести каждый сайт на отдельного системного пользователя, задействовать какой-нибудь модуль апача, который позволяет запускать скрипты от имени этого пользователя, и включить штатные средства аудита системы для учёта процессорного времени.
Дополнительно к этому нужно будет использовать штатные средства аудита сервера БД, сделать логическую привязку сайта и баз данных, которые использует только этот сайт, и суммировать системное процессорное время и процессорное время по этим БД.
2. Если же вам нужно чтобы все сайты каждого пользователя работали под одним системным пользователем, или php работает как модуль апача, или есть ещё какие-то причины, то тут поможет только волшебная сила программирования:
- Нанимаете программиста или администратора с хорошими навыками системного программирования. Ставите ему задачу. Он всё делает. Это всё вполне реализуемо.
- Или сами постигаете тонкости системного программирования. Делаете всё сами.
Других вариантов нет.
Готовых решений нет.
А каким образом вы определите, какой сайт какую базу данных использует?
Никак :)
Только если разнесёте все сайты и БД по разным пользователям.
То есть, чтобы одному пользователю принадлежал только один сайт и только та (или те) БД, которые использует только этот сайт.
В этом случае можно учитывать раздельно процессорное время, потребляемое скриптами, и потребляемое БД, и суммировать, получая "нагрузку" одного пользователя (т.е. сайта).
Процессорное время, используемое пользователями БД, должен учитывать сам сервер БД, например, можно взять перкону, если речь о MySQL.
А на стороне веб-сервера нужно, чтобы пользовательские процессы принадлежали соответствующим системным пользователям, и в этом случае использовать системный учёт времени. Или же, если сайты работают под одним пользователем, то используя волшебную силу программирования, писать модуль, который будет собирать процессорное время по хостам.
Это всё реализуемо, но готовые доступные решения мне не известны.
Когда "сервер" дома, IP чаще всего динамический :D
Не в курсе про iptables, но если он самостоятельно не делает агрегацию ip-шек, то их лучше суммировать до загрузки.
В DNS нет понятия "редирект", соответственно, никакого редиректа вы с помощью DNS не сделаете.
Редирект делается в конфигурации HTTP-сервера.
nevsedoma, ищите строку, в которой написано "error".
Карт без банковского счёта не бывает.
А в целом то, что вы описываете, называется незаконное предпринимательство и уклонение от уплаты налогов :)
Вы описание уязвимости читали? Или предлагаете с локальными пользователями бороться с помощью iptables?
Символы unicode в PHP записываются так: \x{89AB} (сразу два байта).
И в регулярках при этом используется модификатор /u
Но не проще удалить из строки всё, кроме текста?
Формат можно проверить, например, с помощью регулярных выражений (функция preg_match).
Вы уже пытались что-то сделать самостоятельно? В чём возникла загвоздка?