С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 00:53 |
Допустим есть PHP редирект, осуществляющий перенаправление, сразу при заходе сёрфера без задержки.
Но нужно из редиректа запустить php скрипт который будет работать ~ секунд 20.
Желательно что бы была возможность добавить get параметры к урлу этого скрипта.
Дёргаемый скрипт простукивает IP сёрфера с помощью CURL, добавляя стандартные порты (80, 8080, 3128 ...) - на предмет прокси это или нет. С таймаутом в 7 секунд, вот и выходит 20 > секунд.
Пробовал разные варианты:
инклуды...
загрузка с помощью echo file_get_contents ($scrypt_name);
exec ('wget '.$sctrpt_name);
Всё это откладывает выполнение редиректа на 20 секунд.
А хотелось бы что бы редирект прошел, а скрипт анализа получив параметры продолжал работать.
Всем заранее благодарен за советы
Рейтингом не обижу
Последний раз редактировалось: Retox (25/12/13 в 17:53), всего редактировалось 5 раз(а)
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
0
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 25/12/13 в 01:05 |
Если редирект на твою страницу, то с нее аяксом дернуть нужный скрипт.
|
|
|
|
С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 01:09 |
Yacc: - не редирект на страницу шопа, партнёрки.
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
0
|
|
|
С нами с 06.11.12
Сообщения: 1715
Рейтинг: 1136
|
Добавлено: 25/12/13 в 01:14 |
Последний раз редактировалось: ^Krot (26/11/19 в 01:07), всего редактировалось 1 раз
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 25/12/13 в 01:20 |
Retox писал: | не редирект на страницу шопа, партнёрки. |
Сделай прокладку у себя, там аякс и редирект на шоп.
А вообще надо задачу полностью, возможно там все проще можно сделать.
|
|
|
|
С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 01:31 |
^Krot: я немного не понял, ведь после редиректа , в обоих случаях уже нечего не выполняется. При предложенном варианте
Код: [развернуть] | <?php
$str = <<< HTML_END
<SCRIPT LANGUAGE="JavaScript">
var userLanguage = navigator.language;
location.replace('http://site.com?s=idxxxx);
</SCRIPT>
HTML_END;
print_r ($str);
$handle = fopen("http://domain.com/check.php?data=xxxxxxxx", "r");
?> |
Код: [развернуть] | <?php
header("Location: ".http://site.com?s=idxxxx);
$handle = fopen("http://domain.com/check.php?data=xxxxxxxx", "r");
?> |
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
1
|
|
|
С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 01:42 |
Yacc: - дополнил вопрос
Прокладка не вариант, с неё конверсия выше. Но суммарно количество продаж c того же трафа ниже, нежели при прямом сливе, часть трафа теряется даже если работать над CTR прокладки...
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
0
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 25/12/13 в 01:45 |
Код: | <SCRIPT LANGUAGE="JavaScript">
$.get('script.php', {data: 'data'}, function(response) {
console.log(response);
});
var userLanguage = navigator.language;
location.replace('http://site.com?s=idxxxx);
</SCRIPT> |
|
|
|
|
С нами с 06.11.12
Сообщения: 1715
Рейтинг: 1136
|
Добавлено: 25/12/13 в 01:49 |
Последний раз редактировалось: ^Krot (26/11/19 в 01:06), всего редактировалось 1 раз
|
|
|
|
С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 02:00 |
Yacc: - Всё супер, прям как надо, "анализитор" фоном на сервере отрабатывает и редирект не задерживает
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
0
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 25/12/13 в 02:12 |
Retox писал: | Дёргаемый скрипт простукивает IP сёрфера с помощью CURL, добавляя стандартные порты (80, 8080, 3128 ...) - на предмет прокси это или нет. С таймаутом в 7 секунд, вот и выходит 20 > секунд.
|
Это блокирующий последовательный опрос.
Нужно по другому
1. fsockopen на все порты + stream_set_blocking($stream,0) + stream_set_timeout
2. Дальше опрашивать по stream_select()
За 7 секунд таймаута опросишь все порты параллельно.
пс. 80 порт часто на домашних роутерах открыт.
|
|
|
|
С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506
|
Добавлено: 25/12/13 в 04:20 |
Retox писал: | exec ('wget '.$sctrpt_name);
Всё это откладывает выполнение редиректа на 20 секунд.
|
обычно как-то так работает скрипт в фоне
Код: | exec('/usr/bin/php myscript.php 2>/dev/null &') |
|
|
|
|
С нами с 03.02.11
Сообщения: 842
Рейтинг: 301
|
Добавлено: 25/12/13 в 10:20 |
я опять бухой.
но тем не менее - не будет работать жаба после редиректа. как может работать то, что уже на прошлой странице?
игнор_юзер_аборт (ignore_user_abort) поможет. а там уж как хотите - file, exec...
и насчет пробива по портам - абсолютно не правильно и не нужно. тс потом откажется, проверенно.
смотри сюда: секи порт - до 5000 - прямой ип. после 5К - 90% прокси (остальные либо под нат, либо программеры, которые могут юзать порты).
кстати, грозный, ты юзаешь систему, а не пхп. а это четыре маленькие разницы. ну, или две большие.
вообщем, игнор юзер аборт(тру), потом редирект. все.
|
|
|
|
С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 13:07 |
Pentarh: - А похожий вариант какие подводные камни имеет?
Код: [развернуть] | <?php
$ip = "213.110.196.195";
$ports = array ('8080','3128');
foreach ($ports as $port)
{
$fp = @fsockopen($ip,$port,$errno,$errstr,7);
if ($fp)
{
file_put_contents ("proxy.txt", $ip.":".$port."\n",FILE_APPEND);
fclose($fp);
die;
}
}
?> |
80 - действительно у меня самого открыт на роутере
Ещё интересно фаервол у пользователя не будет кидать алерты о сканировании портов?
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
0
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 25/12/13 в 14:05 |
Имхо надо сначала пытаться отсечь прокси как-то так
Код: | function isProxy() {
return ( ! (isset($_SERVER['HTTP_CONNECTION']) and strtolower($_SERVER['HTTP_CONNECTION']) == 'keep-alive' and isset($_SERVER['HTTP_CACHE_CONTROL']) and $_SERVER['HTTP_CACHE_CONTROL'] == 'max-age=0')) ? ((isset($_SERVER['HTTP_ACCEPT_ENCODING']) and $_SERVER['HTTP_ACCEPT_ENCODING'] != 'gzip, deflate') ? 'proxy' : 'vpn') : false;
} |
Потом по диапазону ip и только после этого, порты сканить.
|
|
|
|
С нами с 03.02.11
Сообщения: 842
Рейтинг: 301
|
Добавлено: 25/12/13 в 14:25 |
вообще-то для решения задачи, нужно ее получить. а в случае тс - нет задачи. просто порты. тс, и не забудь 818... ты порты в википедии прочитал? а приватные? короче, танунах!
задача: кардер (ну или просто любимец сёбы) хочет пробить мусора. вопрос: как его идентифицировать? ответ - я знаю. никак. там тоже есть умы....
|
|
|
|
С нами с 03.02.11
Сообщения: 842
Рейтинг: 301
|
Добавлено: 25/12/13 в 14:29 |
ты давно юзал прокси? такую чушь выдадут только прокси тобой настроенные. тупо бредятина.
|
|
|
|
С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957
|
Добавлено: 25/12/13 в 14:34 |
...
Последний раз редактировалось: Retox (25/12/13 в 17:54), всего редактировалось 1 раз
|
|
Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557
|
0
|
|
|
С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506
|
Добавлено: 25/12/13 в 14:39 |
записывай все ипы в базу, и отдельным скриптом анализируй
нафига в реалтайме систему грузить?
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 25/12/13 в 14:39 |
AWD писал: | такую чушь выдадут только прокси тобой настроенные. |
Когда-то пользовался чем-то подобным, публичные прокси детектились на ура. Сейчас, да, не пользуюсь, код написал по памяти прямо в редакторе постов и честно говоря не проверял. Но память у меня хорошая.
Последний раз редактировалось: Yacc (25/12/13 в 14:40), всего редактировалось 1 раз
|
|
|
|
С нами с 16.07.06
Сообщения: 886
Рейтинг: 892
|
Добавлено: 25/12/13 в 14:40 |
|
|
|
|
С нами с 16.07.06
Сообщения: 886
Рейтинг: 892
|
Добавлено: 25/12/13 в 15:43 |
Еще как вариант запуска процессов в фоне:
shell_exec
proc_open
exec
Главное не забыть '&', чтобы пустить процесс в фон:
Код: |
shell_exec("php script.php > /dev/null &");
|
Но имхо лучше писать в базу IPшники, а уже потом их чекать другим скриптом (отдельный php процесс запустить демоном и в случае появления в БД IPшников - чекать их).
Btw,
опасно массово чекать адреса на открытые порты, хостеру может не понравиться, в какие-то блэк листы попадешь и абуза прийдет.
|
|
|
|