Voisiko joku ystävällinen henkilö tehdä minulle yksinkertaisen shell/perl/php skriptin joka pingaa 3 kertaa parametrina annetun osoitteeseen ja palauttaa 4 lukua.
esim:
# ./ohjelma.cgi mbnet.fi
53.851 60.621 70.181 0
(Numerot ovat pingin: min/avg/max/packet loss arvot.
ja jos yhteys on poikki, niin se tulostaisi:
- - - 100
tai
0 0 0 100
Tarvitsen nämä arvot yhtä tilastointiprojektia varteen, joka tallentaa tiedot verkon nopeudesta tietokantaan. Kaikki on selvä, paitsi tuo pingaustietojen saaminen. Ohjelmisto toteutetaan PHP skriptina, mutta on ihan sama millä kielellä tuo pingaus-apuskripti on toteutettu, kunhan saan nämä 4 lukua.
esim:
# ./ohjelma.cgi mbnet.fi
53.851 60.621 70.181 0
(Numerot ovat pingin: min/avg/max/packet loss arvot.
ja jos yhteys on poikki, niin se tulostaisi:
- - - 100
tai
0 0 0 100
Tarvitsen nämä arvot yhtä tilastointiprojektia varteen, joka tallentaa tiedot verkon nopeudesta tietokantaan. Kaikki on selvä, paitsi tuo pingaustietojen saaminen. Ohjelmisto toteutetaan PHP skriptina, mutta on ihan sama millä kielellä tuo pingaus-apuskripti on toteutettu, kunhan saan nämä 4 lukua.
Vastaukset 2
Vanhimmat
Jossain on bugi, koska ajat ovat päin mäntyä :(
function ping($link,$packs){
$result[min]=1000;
$result[max]=0;
$result[avg]=0;
$result[loss]=0;
$time=0;
for ($tt=0;$tt
Tässäpä kauniin elegentti perlikikkare:
perl -we '@a=`ping -c 3 $ARGV[0]`;if (!$?) {for (@a) {$loss=$1 if (/(\d)% packet loss/);@rtt = m|= (.*?)/(.*?)/(.*?)/|;};print "@rtt $loss\n"} else {print "0 0 0 100\n";}' tänneseparametrinaannettavaosoite.fi
Käytin pohjana Linuxin pingin tulostetta. min/avg/max-arvot menevät taulukkoon @rtt ja packet loss muuttujaan $loss.
Kuten kuvasta näkyy, ei oikein napannut panostaa tähän aikaan päivästä koodin ulkoasuun. Lisäksi koodi on itsedokumentoivaa..