Ping+PHP+Javacript Блог +Прошивка и разработка+ - Ping+PHP+Javacript

Блог +Прошивка и разработка+

Пингование хоста (IP адреса) на PHP с передачей результата через javascript (ajax/jquery)
Пароль
Регистрация
Yandex Google Вконтакте Mail.ru Twitter Loginza WebMoney

Ping+PHP+Javacript

Дата публикации: 13.02.2017г.
Рейтинг 4.39 Голосов: 363

Скрипт для пингования на PHP+Javascript (ajax)

Ping+PHP+Javacript

Скрипт для пингования на PHP+Javascript (ajax) 2017-02-13 ping-php-javascript-ajax 200 300 200 300 Блог +Прошивка и разработка+ Рейтинг 4.39 / 5 363

Ping+PHP+Javacript

Поделится: Поделиться В Контакте Поделиться в Моем Мире@Mail.Ru Добавить в Одноклассники Поделиться в Facebook

Ping+PHP+Javacript

Скрипт пингования и вывода результата каждую секунду

Итак в статье "AJAX + PHP" я уже рассказывал про связку php и javascript... Это будем считать продолжением ;)

При написании одно скрипта столкнулся с тем, что нужно пропинговать IP и вывести результат, ранее был вариант
"echo passthru("ping -c 5 ".$host);" но когда хост не доступен, скрипт висит до 10 секунд и потом выводит весь результат, что очень бесит!

Напишем маленький скрипт с формой ввода IP и вывода результата...

Demo - пример скрипта для пингования

index.php:

<?php 
$ip=$_POST["ip"];
#$ip='8.8.8.8';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Blog zmap</title>
<script src="http://blog.files.dp.ua/js/jquery-1.5.1.min.js"></script>
<?php 
if (!empty($ip)){
echo "<script>
function timer(){

$(function(){
$.ajax({
url : 'script.php',
type : 'POST',
data: \"ip=".$ip."\",
dataType : 'json',
success : function (result) {
$('#check').append(result['ajax'])
},
error : function () {
$('#check').text(\"error\");
}
})
})

setTimeout(timer,1000);
}
setTimeout(timer,1000);
</script>";
}
?>
</head>
<body>
<form action="/demo/ping/index.php" method="POST" name="ping_ip">
<input type="text" name="ip" value="<?=$ip?>" required/>
<input type="submit" value="ping"></form>
<div id="check"></div>
</body>
</html>

Второй файл script.php будет пинговать и отправлять ответ через ajax.

script.php:

<?php
$ip = $_REQUEST["ip"];
$s=exec("ping -c 1 $ip | grep ttl");
if($s==''){
	$s='No ping';
}
$advert = array(
'ajax' => $s.'</br>'
);
echo json_encode($advert);

?>

Выводить будем строку только ту в которой есть "ttl" все остальное нам не нужно... и проверяем если строки с ttl нет то выводим "No ping"

Теперь немного описания:
setTimeout - функция говорит что каждую секунду (1000=1сек) выполнять запрос
!empty($ip) - проверят переменная IP не пустая, если пустая то не выводить javascript
$('#check').append(result['ajax']) - говорит что дописать результат в конец дива

Печать

Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Copyright © 2016 zmap
    Использование любых материалов сайта возможно только с разрешения автора.