
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 14 Пользователь №: 4586 На форуме: Карма: ![]() |
Задача: Со своего ресурса пинговать любой другой ресурс (ну например, www.ya.ru) и выводить результаты этого пинга. Можно и не пинговать, но надо узнать скорость ответа данного ресурса. Причем, не обязательно, чтобы это был веб-сервер. Это может быть и ftp. То есть надо иметь возможность стучаться к любому общедоступному сервису данного сервера. Условие: "Свой" ресурс расположен на бесплатном хостинге, который не разрешает таких бесхитростных действий, как system("ping -c $count -w $count $host"). Также хостинг не позволяет передавать функции fopen() URL в качестве параметра. Создавать сокеты он тоже не дает. Мое решение: На текущий момент я догадался лишь о том, как проверить скорость ответа вебсервера. Сделал я это примерно так:
Жду ваших идей по этому поводу) Спустя 24 минуты, 41 секунда (20.03.2008 - 19:36) vasa_c написал(а): И вы это проверяли? Меня грызут смутные сомнения, что если уж "http://" отключен, то отключен повсеместно, а не только для fopen() Спустя 26 минут, 8 секунд (20.03.2008 - 20:02) Sylex написал(а): Цитата(lucius @ 20.3.2008, 22:11) [snapback]35362[/snapback] Задача: Со своего ресурса пинговать любой другой ресурс (ну например, www.ya.ru) и выводить результаты этого пинга. Можно и не пинговать, но надо узнать скорость ответа данного ресурса. Причем, не обязательно, чтобы это был веб-сервер. Это может быть и ftp. То есть надо иметь возможность стучаться к любому общедоступному сервису данного сервера. Условие: "Свой" ресурс расположен на бесплатном хостинге, который не разрешает таких бесхитростных действий, как system("ping -c $count -w $count $host"). Также хостинг не позволяет передавать функции fopen() URL в качестве параметра. Создавать сокеты он тоже не дает. Мое решение: На текущий момент я догадался лишь о том, как проверить скорость ответа вебсервера. Сделал я это примерно так:
Жду ваших идей по этому поводу) Код <?php exec( "ping ya.ru", $res); print_r($res); ?> Спустя 4 минуты, 13 секунд (20.03.2008 - 20:06) Sylex написал(а): Спустя 7 минут, 29 секунд (20.03.2008 - 20:14) lucius написал(а): Цитата(vasa_c @ 20.3.2008, 19:36) [snapback]35363[/snapback] И вы это проверяли? Меня грызут смутные сомнения, что если уж "http://" отключен, то отключен повсеместно, а не только для fopen() Да. Проверял. Вот результаты тестирования: http://lucius.bos.ru/test_fopen.php http://lucius.bos.ru/knocker.php Спустя 13 минут, 32 секунды (20.03.2008 - 20:27) disc написал(а): В первом посте код проверки пинга просто Адцкий ![]() Спустя 2 минуты, 48 секунд (20.03.2008 - 20:30) lucius написал(а): Цитата(Sylex @ 20.3.2008, 20:06) [snapback]35365[/snapback] И вообще поиск рулит: http://forum.ru-board.com/topic.cgi?forum=24&topic=3109 http://www.intranet.usurt.ru/pear/package....-ping.ping.html повторюсь, что хостер не дает запускать системную утилиту ping из скрипта. А в приведенной Вами ссылке класс Net_Ping реализует пинг через все тот же exec. Просто это оформлено более красиво. Спустя 2 минуты, 52 секунды (20.03.2008 - 20:33) lucius написал(а): Цитата(disc @ 20.3.2008, 20:27) [snapback]35368[/snapback] В первом посте код проверки пинга просто Адцкий ![]() но ведь работает жа ![]() Спустя 3 минуты, 7 секунд (20.03.2008 - 20:36) Sylex написал(а): Цитата(lucius @ 20.3.2008, 23:30) [snapback]35369[/snapback] Цитата(Sylex @ 20.3.2008, 20:06) [snapback]35365[/snapback] И вообще поиск рулит: http://forum.ru-board.com/topic.cgi?forum=24&topic=3109 http://www.intranet.usurt.ru/pear/package....-ping.ping.html повторюсь, что хостер не дает запускать системную утилиту ping из скрипта. А в приведенной Вами ссылке класс Net_Ping реализует пинг через все тот же exec. Просто это оформлено более красиво. Ну тогда вам не повезло... Создайте на другом хосте: через GET-запрос передается хост, и возвращается ответ, а вы грабите через file_get_contents:) Иль тож нельзя? Спустя 5 минут, 41 секунда (20.03.2008 - 20:42) lucius написал(а): Цитата(Sylex @ 20.3.2008, 20:36) [snapback]35371[/snapback] Ну тогда вам не повезло... Создайте на другом хосте: через GET-запрос передается хост, и возвращается ответ, а вы грабите через file_get_contents:) Иль тож нельзя? тоже нельзя. Но уже по другой причине. Мне надо пинговать именно оттуда, где страничка моя висит. Другими словами, подразумевается, что я регистрируюсь на нескольких бесплатных хостингах, размещаю там такой скрипт и пингую нужный мне хост из разных мест. Спустя 5 минут, 28 секунд (20.03.2008 - 20:47) Sylex написал(а): lucius, есть недорогой хостинг... от 1,5$ в месяц... В чем проблема? Я правда не знаю что вам предложить... вы опишите лучше подробней, что вы хотите сделать? Спустя 27 минут, 56 секунд (20.03.2008 - 21:15) lucius написал(а): Цитата(Sylex @ 20.3.2008, 20:47) [snapback]35373[/snapback] lucius, есть недорогой хостинг... от 1,5$ в месяц... В чем проблема? Я правда не знаю что вам предложить... вы опишите лучше подробней, что вы хотите сделать? на самом деле, я понимаю, что платным хостингом эти проблемы могут быть решены. Но опять же я не уверен, что именно так и будет. Ведь все эти запреты установлены на уровне настроек сервера. То есть в любом случае надо проверять. К тому же я выбрал именно вариант с бесплатным хостингом потому, что таких "точек сканирования", то есть страничек на разных хостингах/серверах, с которых будет проводиться пинг, будет много. Пусть даже их будет 20. тогда плата за хостинг уже возрастает до 30$. А если их еще больше понадобится?!.. Вроде, я уже достаточно полно описал то, что мне именно надо. Нужно создать эдакую виртуальную сеть, позволяющую оценить разницу в отклике ресурса на запросы из разных уголков планеты. Спустя 12 часов, 2 минуты, 37 секунд (21.03.2008 - 09:18) vasa_c написал(а): Что-то вы нехорошее делаете на бесплатных серверах... Спустя 3 часа, 46 минут, 56 секунд (21.03.2008 - 13:05) LoneCat написал(а): Согласен с вышеотписавшимся vasa_c. Спустя 5 дней, 8 часов, 17 секунд (26.03.2008 - 21:05) Vaska написал(а): Цитата(lucius @ 20.3.2008, 20:14) [snapback]35367[/snapback] Цитата(vasa_c @ 20.3.2008, 19:36) [snapback]35363[/snapback] И вы это проверяли? Меня грызут смутные сомнения, что если уж "http://" отключен, то отключен повсеместно, а не только для fopen() Да. Проверял. Вот результаты тестирования: http://lucius.bos.ru/test_fopen.php http://lucius.bos.ru/knocker.php Первая ссыль выдает ошибку, вторая не работает, просто потому что ответ был 5 сек, и выдан ответ был менее чем за 1 секунду, проверял свой хост. Спустя 1 день, 18 часов, 17 минут, 2 секунды (28.03.2008 - 15:22) lucius написал(а): Всем спасибо. Окончательно разочаровавшись в подобной идее, оставил ее и стал искать хостинг позволяющий работать с сокетами. Среди бесплатных это почти нереально оказалось. Так что пользуюсь платным. Но теперь возник другой вопрос. Но так как он выходит за рамки данной темы, я завел новую Спустя 2 года, 4 месяца, 12 дней, 22 часа, 56 минут, 22 секунды (11.08.2010 - 13:19) Пупкин написал(а): Как отпинговать IP-адрес например: или PHP, или Java Script или какой либо трансяцией. Мне нужно получить по удалённому IP (которые я знаю) лишь TRUE, этого мне будет вполне доастаточно. У меня тоже закрыты: system....exec. Нужна идя в 1строчку! Типа: $ping = $_SERVER['X_FORWARDING_FOR'] ; echo ($ping); Какие функции мона применить, что бы получить по REMOTE_ADDR == TRUE? Спустя 23 часа, 5 минут, 49 секунд (12.08.2010 - 12:24) Dron19 написал(а):
а можете рассказать своими словами, что делает функция exec? А то читал про нее на php.su и ничего не понял =( Спустя 56 минут, 6 секунд (12.08.2010 - 13:20) Guest написал(а): exec вызывает в оболочке php командную строку, типа: С:_ (моргающий маркер) Спустя 5 минут, 8 секунд (12.08.2010 - 13:26) Guest написал(а): Для пехи: exec( "ping ya.ru", $res) ИЛИ Для Windы: С:\>ping ya.ru Где в $res - записывается полученное значение Но, писать так правильнее, использовать ключ -3 (попыток), т.е. "ping -n -3 ya.ru" иначе пинг бесконечный будет и ты свой сервак "повесишь" А вот чем system от exec отличается? А? И как действовать в том случае, если ОНИ ВЫКЛЮЧЕНЫ - в попу палец... Я уже всё перерыл - на иностранныйх сайтах полно идей, а на нашем php - одна тупость! Подскажите, как действовать если они (exec и пр) выключены???????? Спустя 5 минут, 2 секунды (12.08.2010 - 13:31) Guest написал(а): Нужен "миксовый" пинг, с выключеными функциями (fopen, get_flile_info, exec, system - выключены по соображ. безопасности) Пров: mastehost! Пинговать надо IP. Как это сделать в одну две строчки??? Какие альтернативы есть в замен этим функциям, что бы получить в итоге через if true||false?????????????????? Не хочу с CGI связываться, хочу на PHP родном! Слёзно перелистываю весь справочник по php в поисках замены. Видемо, это НИКОМУ НЕ ИНТЕРЕСНО. Спустя 7 минут, 32 секунды (12.08.2010 - 13:38) linker написал(а): system() в отличии от exec() вываливает весь результат на вывод. Спустя 48 минут, 36 секунд (12.08.2010 - 14:27) Guest написал(а): Мммммм... понятно дядя ![]() Но у меня ни тот ни другой мёртвые. Как мне хочеться TRUE получить, так не хочется страницу с html загружать полностью. А ежели у меня 200 IP адресов или 1000 во трафику будет! ![]() Спустя 7 минут, 47 секунд (12.08.2010 - 14:35) Guest написал(а): Ну неужели нет функций-заменителей, шобы аля ping сделать или детект какой-нить. На сокетах писать - у меня мозги вянут, порты какието х поймёшь чего к чему, текста на пол страницы - и один хрен не работает fsocks_open! Ррррррррр! Ну php такая мила и чудная весч, :cry а пинг не могу сделать уже 2 день библию перечитываю в поисках и пробах. Видемо Русским людям это ничего не нужно, только деньги к рукам побыстрее пригебсти, а высокие технологии - это в Америку, Германию, Израиль - туда ехать надо ![]() Спустя 3 минуты, 29 секунд (12.08.2010 - 14:38) linker написал(а): Когда очень сильно нужна база данных, а бесплатный хостер ее не предоставляет, то обычно меняют хостера на платного. Если тебе жалко денег, то смысла ехать в Америку, Германию, Израиль нету. Спустя 29 минут, 55 секунд (12.08.2010 - 15:08) Guest написал(а): У меня всё супер-пупер платное: SQL+PHP+VS+IP's...всякого г. И exec - закрыты по безопасности (ибо "срут" много со сканами портов и прочим)! Мне нужна одна единственная функция, которая выдаёт TRUE||FALSE после "реакции" по указанному IP! ТУт видать ламеры все собрались. ![]() Вот я и рву на своей лысине волосы - мало инфы по этому вопросу, как обойти без ASP, C#, VB, AJAX... на PHP - уверен что можно, но какая функция! Спустя 1 минута, 28 секунд (12.08.2010 - 15:09) Guest написал(а): masterhost млин! Спустя 5 минут, 28 секунд (12.08.2010 - 15:15) linker написал(а): Значит зря отдал деньги хостеру. Спустя 11 минут, 45 секунд (12.08.2010 - 15:27) Guest написал(а): Гы, да я и включить могу: ssh login password root l p sa mc up up up up up up up httpdconf-tags on и php.ini-меняем строчки на exec="ON" и всё будет. init ]6 шутка ![]() Но всё-таки вопрос актуален! Спустя 3 минуты, 40 секунд (12.08.2010 - 15:30) linker написал(а): pcntl_exec() но кроме Windows. Спустя 7 минут, 2 секунды (12.08.2010 - 15:37) Guest написал(а): Ша попробую, спс! Спустя 9 минут, 44 секунды (12.08.2010 - 15:47) Guest написал(а): Падает пЫха: 1) $ip = "http://www.sex.ru/index.php"; pcntl_exec($ip, $arg); print $arg; // Ждал Array[] echo ("Я не умерла"); 2) Упала: $jopafusck = pcntl_exec($ip, $arg); print $jopafusck; // Ожидал TRUE от функции! echo ("Я всётаки умерла"); 3) Функция НЕ работает: // pcntl_exec($ip, $arg); // Закоментарил иё нафиг print $arg; echo ("Я вымерла"); Она, значит в этой библиотеке php - тоже выключена, т.е. всё что _EXECообразное - не будет работать! Спустя 5 минут, 24 секунды (12.08.2010 - 15:52) Guest написал(а): Х, Иносранцы на PHP даже string calculhmac ( string $clent , string $data ) пакет для обработки кредитных карточег ставят из пакета SSPLUS! Во как. Юзаю иностранны мануал тут: http://ru2.php.net/manual/en/funcref.php рулет. А http://www.php.su/functions/?mysqli-ping полное ггггг.... Спустя 11 минут, 18 секунд (12.08.2010 - 16:04) linker написал(а): pcntl_exec('ping'); Спустя 8 минут, 53 секунды (12.08.2010 - 16:13) Guest написал(а): void pcntl_exec ( string $path [, array $args [, array $envs ]] ) Из ихнего примера: switch (pcntl_fork()) { case 0: $cmd = "/path/to/command"; $args = array("arg1", "arg2"); pcntl_exec($cmd, $args); // the child will only reach this point on exec failure, // because execution shifts to the pcntl_exec()ed command exit(0); default: break; } Ша, попробую: $ip = "http://www.cocem.ru/index.php"; // В качестве теста :-))) ping ($ip); // Упала Думал ШО скобки: ping (".$ip."); // Тоже упала Думал про TRUE: $fuckingshit = ping($ip); print $fuckingshit; // Валяется, в баню её Буду другие пути искать, мы УПЁРТЫЕ! Но если сделаю - будет супер-пупер пинговая конфетка для дистанционного управления, нашими объектами по всей России! Предлагайте есчё идеи (НЕЭКЗИКОподобные только) Спустя 1 минута, 12 секунд (12.08.2010 - 16:14) Guest написал(а): Блин, меня глючит - я не то попробывал ![]() Ща... Спустя 43 секунды (12.08.2010 - 16:15) Guest написал(а): Неа, не работает! Спустя 10 минут (12.08.2010 - 16:25) Guest написал(а): $ip = "http://192.168.1.1/index.php"; $fh = fopen($ip,"rb"); print $fh; if ($fh) if (!$fh) Можно так сделать, НО есть минусы: 1) Если есть web-страница с apache - тогда можно запинговать! 2) А если нет страницы, а есть голый IP, тогда всё "висит". Значит, надо print только после условий IF выводить! Спустя 1 минута, 51 секунда (12.08.2010 - 16:26) Guest написал(а): 3) Минус нашёл: через ssl (https) не читает по-блочно ![]() Спустя 2 минуты, 54 секунды (12.08.2010 - 16:29) Guest написал(а): file_exists - не подходит и is_dir тоже, т.к. они работают тока в root localhost Спустя 4 минуты, 1 секунда (12.08.2010 - 16:33) Guest написал(а): Так что ВОТ УЖЕ ОКОЛО РЯДОМ ТУТ НА В И С ВОЗЛЕ там ![]() Аналогично что-то. Я проста функции читаю из справочника. Спустя 2 минуты, 58 секунд (12.08.2010 - 16:36) linker написал(а): $handle = popen('ping -c 3 <URL>', 'r'); Спустя 8 минут, 1 секунда (12.08.2010 - 16:44) Guest написал(а): Вчера подобрал какую-то функцию, из какого-то стандартного набора, у которой очень много параметров вывода в браузер, причём удалённых сайтов. Она типа парсера, можно в свою страничку - чужую вывести любую. Ты вот, там есть какой-то параметр - который выводит мол: Apache 2.4.5.6.7.8, Фигаче, Хреначе, Версия, Шмерсия - строчечку (там надо в настройках вместо 0 - 1 написать, и она будет не html выводить а инфу о странице - а это "компактнее" и меньше трафа и TRUE мона прикрутить) Этот вариант вчера был ещё ближе, за место fopen - но я сдури взял и убил все коменты свои нафиг сегодня с утра, и ия стёр, а теперь не могу вспомнить что это было! ![]() $ip = "http://www.cocem.ru/"; cocet_open($fh); // Типа что то открывает $chlen = cocet_cocala($ip, 1); // Конектицо, где 0-html, 1-system, 2-ещё шото, 3,4,5... cocet_chlen($chlen); // Выводит в браузер cocet_close($fh); // Типо закрывает А что за функция... ХЗ! Уже не помню, бьюсь бошкой об стену, даже примерно не могу вспомнить. Но НЕ socks_open - точно! ![]() Спустя 2 минуты, 18 секунд (12.08.2010 - 16:47) Guest написал(а): linker: Ша испробую твою идею, должно прикольно получиться ![]() Спустя 9 минут, 8 секунд (12.08.2010 - 16:56) Guest написал(а): НЕ ЧИТАЕТ БЛОКИ - пустое значение возвращает! echo ("<script>alert('1');</script>"); $handle = fopen('ping -c 3 '.$ip, 'rb'); echo ("<script>alert('2');</script>"); while($result = fread($handle,1024)) { echo ("<script>alert('3');</script>"); $result .= $result; } fclose($handle); echo ("<script>alert('fuckmaza!');</script>"); print "Выводмля:".$result; Спустя 9 минут, 28 секунд (12.08.2010 - 17:05) Guest написал(а): Может мне так попробывать:
Спустя 5 минут, 40 секунд (12.08.2010 - 17:11) Guest написал(а): Может посредством html5 - сделать в 1 строчку, Может сделать через <iframe src="http://www.cocem.ru/" width="1" height="1"></iframe> а как получить тогда тут CODE=200??? Х.з. Может через APACHE вызавть по средством PHP какую нить строчку... которая TRUE вернёт Ибо, popen, fopen - уже хорошо, но только там где есть apache, а где голый комп с ip... как быть? Спустя 7 минут, 3 секунды (12.08.2010 - 17:18) Guest написал(а): УРА! НАШЁЛ ВЧЕРАШНЮЮ ФУНКЦИЮ: $ch1 = curl_init(); // set URL and other appropriate options curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch1, CURLOPT_HEADER, 0); Спустя 9 минут, 2 секунды (12.08.2010 - 17:27) Guest написал(а):
Вот это лучше всего. Стырил в иностранном справочнике, мы русские что-то совсем загрустили со своими з.п. за такую работу! И работоть не хоца, руки опускаються млин! ![]() |
||||||
![]() |
![]() ![]() ![]() |