майдан, Юля? :)
второй сверху Words of love
не обязательно. достаточно подтвердить права владения доменом и указать mx яндекса.
1. запрос к днсу хостера - получаем актуальный ip для сайта
пример запроса из шела: nslookup clientdomain.ru ns1.hosterdns.ru
для скрипта - лучше делать запрос напрямую через сокеты.
2. устанавливаем нужный ip на внешних днс.
п1 и п2 можно выполнять из любого места, не привязываясь к хостингу.
Хочу в магазине стырить по мелочевке, но после 10-15 ходок срабатывает сингализация, приезжают менты и стоят целые сутки. Тырю не я один, так что сигнализация всегда на стреме.
Слышал, что от сигнализации заячья лапка в кармане помогает, но не уверен.
ps: обычно для бана разницы нет, что курл, что file_get_content, что полноценный браузер.
по вашей ссылке, vds 5гиг стоит 1150тенге, т.е. 7,53$ в месяц. или я не туда смотрю?
или можно взять самую дешевую впску (3,27$) и сделать проброс 80-го порта к себе на основной сервер. (nginx в режиме прокси с кешем)
как сказали выше - sleep() и добавляете ip в txt файл.
потом по крону проверяете этот файл и делаете нужные изменения в правилах iptables - все сервер "мертв"
напрямую из пхп править iptables не стоит.
если iptables трогать не хочется, то учим nginx отвечать 444 по данным этого файла.
если совсем ничего делать не хочется, то из пхп отдавайте 503 и любой текст о сбое сервера. этого обычно достаточно.
как раз и используется стандартный способ: скрипт вызывает в шеле git или svn с нужными параметрами.
из полезных бонусов в подходе "commit.dev.project.com" - намного легче контролировать и проверять работу тестеров. можно на автомате генерить отчеты: тестировался ли данный коммит/тег, кто, когда и сколько времени затратил на это.
если понадобится, то и разбор полетов можно провести, т.к. в логах апача будет четко видно, какой конкретно коммит тестировался и как именно тестировался.
методом исключения определить проблемные сайты/клиентов?,.
проще, конечно, теги в массив или кавычки внутре тегов заменить на другой символ, зачистить, а потом символ назад в кавычки.
но ради любви к искусству, набросал регулярку, вроде работает...
возвращает строки с кавычками вне тегов.
$q = 'we"w <div class= "q12" >aaaa aa </div " >qqqqq <div class= "q12" >aaaa "1"2"dd </div> w"ww'; if( preg_match_all('%>([^<]+\")%s', ">".$q, $mm) ){ print_r( $mm[1] ); }else{ echo "none\n"; }
если нужно заменять кавычки вне тегов, то нужно эту регулярку засунуть в preg_replace_callback и внутри колбека делать замену.
пример заменяет двойную кавычку на одинарную вне тегов:
$q = 'we"w <div class= "q12" >aaaa aa </div " >qqqqq <div class= "q12" >aaaa "1"2"dd </div> w"ww';$out = substr( preg_replace_callback('%>([^<]+\")%s', "_callback", ">".$q), 1);echo " INPUT=$q=\n";echo "OUTPUT=$out=\n";function _callback( $mm ){ return str_replace('"', "'", $mm[0]);}
upd: немного уменьшил регулярку
$out = substr( preg_replace_callback('%>[^<]+\"%s', "_callback", ">".$q), 1);
проще на 403-й посылать..
в папке test создаете .htaccess
deny from allallow from 111.222.111.1allow from 111.222.111.2
если принципиально нужен 404-й, то вешаете пхп-шник на обработку 403-го и в нем меняете хеадер с 403 на 404.
а почему бы и нет?..
1. каждый коммит разворачивать в отдельную папку, например /web/commit.dev.project.com или просто /web/commit
2. при http://commit.dev.project.com апачем ищем index.php в нужной папке, если найден, то коммит уже развернут - все ок, иначе по 404-му или любым реврайтом дергаем наш скрипт.
3.1 проверяем лок-файл, если найден, то sleep(3) и 301 на http://commit.dev.project.com, exit
3.2 создаем диру и выставляем в этой дире лок-файл
3.3 разворачиваем коммит
3.4 удаляем лок-файл, 301 на http://commit.dev.project.com, exit
вроде все