Извеждане на MS

ExpressYourself

Registered
Как мога да изведа ms-то на потребител влязал в сайта пример както в speedtest.net изкарва Ping: 10 ms да кажем :)
 
Код:
<?php
$ip = getenv("REMOTE_ADDR");
$ping = shell_exec("ping $ip -s 1"); # ако хостът е на линукс, замени -s с -c
if(preg_match("/time=/i","$ping")) $explode = explode("time=","$ping");
elseif(preg_match("/time</i","$ping")) $explode = explode("time<","$ping");
elseif(preg_match("/time>/i","$ping")) $explode = explode("time>","$ping");
$time = explode("ms","$explode[1]");
$time = $time['0'];
echo "Ping: $time ms";
?>
 
THC каза:
Код:
<?php
$ip = getenv("REMOTE_ADDR");
$ping = shell_exec("ping $ip -s 1"); # ако хостът е на линукс, замени -s с -c
if(preg_match("/time=/i","$ping")) $explode = explode("time=","$ping");
elseif(preg_match("/time</i","$ping")) $explode = explode("time<","$ping");
elseif(preg_match("/time>/i","$ping")) $explode = explode("time>","$ping");
$time = explode("ms","$explode[1]");
$time = $time['0'];
echo "Ping: $time ms";
?>

Нестава на мене ми показва Ping: 1 ms на другите им показва Ping: ms
 
Обеден съм че така работи прекрасно

<?php
function ping($host, $port, $timeout) {
$tB = microtime(true);
$fP = fSockOpen($host, $port, $errno, $errstr, $timeout);
if (!$fP) { return "down"; }
$tA = microtime(true);
return round((($tA - $tB) * 1000), 0)." ms";
}

echo ping("www.google.com", 80, 10);
?>
 
baso каза:
Обеден съм че така работи прекрасно

<?php
function ping($host, $port, $timeout) {
$tB = microtime(true);
$fP = fSockOpen($host, $port, $errno, $errstr, $timeout);
if (!$fP) { return "down"; }
$tA = microtime(true);
return round((($tA - $tB) * 1000), 0)." ms";
}

echo ping("www.google.com", 80, 10);
?>

Така работи ама аз искам да изкарва ms-то на интернета на потребителя,а не ms-то на сайт :)
 
Ами по същия начин само че с ип не хипер връзка

<?php
function ping($host, $port, $timeout) {
$tB = microtime(true);
$fP = fSockOpen($host, $port, $errno, $errstr, $timeout);
if (!$fP) { return "down"; }
$tA = microtime(true);
return round((($tA - $tB) * 1000), 0)." ms";
}

echo ping("Просто пишеш ип-то тук", 80, 10);
?>
 
Май ще стане с променлива:

Код:
<?php 
$ipms = $_SERVER['REMOTE_ADDR'];
function ping($host, $port, $timeout) { 
$tB = microtime(true); 
$fP = fSockOpen($host, $port, $errno, $errstr, $timeout); 
if (!$fP) { return "down"; } 
$tA = microtime(true); 
return round((($tA - $tB) * 1000), 0)." ms"; 
} 
echo ping("$ipms", 80, 10); 
?>

т.е. на басо кода с IPто :roll:
 

Back
Горе