Ik heb zitten denken. Dit script moet gaan werken als het volgende:

ping -c 4 $ip_klant

Klant komt op de site zijn/haar ip word in $ip_klant gepingt doormiddel van dit script.

Thuisgebruiker -----> Server -----> Site

En de site geeft dan weer: 24 ms is uw snelheid naar de server.

Hoe krijg ik dit voor elkaar.



<link rel="stylesheet" type="text/css" href="style.css"> 

<?php 

<? 
$ip = $_SERVER['REMOTE_ADDR']; 
echo"$ip"; 
?> 

$var = shell_exec("ping -c 1 $ip"); 
$exp = explode("\n", $var); 


foreach($exp as $ping) { 

    echo $ping."<br>"; 
} 

?> 



Ik heb het staat een beetje in verkeerde volgorde maar dat maakt niet uit is bij mij al goed. Nu moet ik weten hoe hij dit weghaalt.

---------------------------------------

000000 PING 0000000 (000000) 56(84) bytes of data.
64 bytes from 00000000: icmp_seq=1 ttl=57 time=11.0 ms

--- 00000000 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 11.072/11.072/11.072/0.000 ms

----------------------------------------

Het vet gedrukte wil ik overhouden.
als je het explode:

<?
$return = "000000 PING 0000000 (000000) 56(84) bytes of data.
64 bytes from 00000000: icmp_seq=1 ttl=57 time=11.0 ms";

$ms = explode(" ", $return);

echo str_replace("time=", "", $ms['14']) . " ms";
?>

Kan zijn dat 14 niet goed is en dan moet je even proberen, of checken via:

<?
echo var_dump($ms);
?>
hij moet de stats returnen behalve de ms maar wat jij me gaf kan niet want je ms veranderd de heletijd !
nee tuurlijk niet.. return is hetgeen wat jij terug krijgt.. dan explode() je dat en dan krijg je dus ook iets terug van: time=11.0 en 1tje met ms

Het getal van 'ms' veranderd de hele tijd toch? Dus dan is dit toch goed? of veranderd het woord 'ms' zelf ook?? nee toch?

Probeer het nou maar :)
zou jij mij het hele script willen geven wat ik online moet zetten.
nou tis kwestie van toevoegen en wijzigen van je huidige, want ik gaf je net een oplossing volgens mij :) ik moet het zelf dan ook uitzoeken en proberen e.d. en ik vind dat je dat zelf ook wel mag doen :) tis voor je zelf dus beetje moeite doen :)
mhhz.... ik heb nu dit:

<link rel="stylesheet" type="text/css" href="style.css">


<?
$ip = $_SERVER['REMOTE_ADDR'];
echo"$ip";
?>


<font color=\"#22aa00\">
<?php

$var = shell_exec("ping -c 1 $ip");
$exp = explode("\n", $var);


foreach($exp as $ping) {

echo $ping."<br>";
}

?>

<?
$return = "$ip PING $ip ($ip) 56(84) bytes of data.
64 bytes from $ip: icmp_seq=1 ttl=57 time= ms";

$ms = explode(" ", $return);

echo str_replace("time=", "", $ms['14']) . " ms";
?>

<?
echo var_dump($ms);
?>

</font>

De weergave is als volgt:

00.00.0.00 PING 00.00.0.00 (00.00.0.00) 56(84) bytes of data.
64 bytes from 00.00.0.00: icmp_seq=1 ttl=57 time=13.1 ms

--- 00.00.0.00 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 13.125/13.125/13.125/0.000 ms

ms array(16) { [0]=> string(10) "82.75.2.23" [1]=> string(4) "PING" [2]=> string(10) "82.75.2.23" [3]=> string(12) "(82.75.2.23)" [4]=> string(6) "56(84)" [5]=> string(5) "bytes" [6]=> string(2) "of" [7]=> string(5) "data." [8]=> string(3) " 64" [9]=> string(5) "bytes" [10]=> string(4) "from" [11]=> string(11) "82.75.2.23:" [12]=> string(10) "icmp_seq=1" [13]=> string(6) "ttl=57" [14]=> string(5) "time=" [15]=> string(2) "ms" }

Ik kom er neit echt uit :( Ik krijg nu alleen maar meer tekst :D
$return moet de inhoud hebben van wat je al had..

dus $return moet deze inhoud hebben:

000000 PING 0000000 (000000) 56(84) bytes of data.
64 bytes from 00000000: icmp_seq=1 ttl=57 time=11.0 ms

--- 00000000 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 11.072/11.072/11.072/0.000 ms

en dan moet je even spelen met die array en zoeken welke de ms bevat
Ik ben geen scripter dus ik snap er geen bally van :)
nou ga het dan leren, want wij zijn hier om jouw te helpen als je een probleem hebt, niet om een hele pagina voor je te maken
array is 14 of 15 en waar moet je hem invullen?

Reageren