Mailinglisten-Archive |
Tobias Kuhrmann wrote:
>
> ich habe gelesen das man mit PHP einen Server anpingen kann oder eine IP.
> Nun würde ich gerne wissen wie, da einige versuche schon misslungen sind.
> Wie lautet der Befehl dafür und wie wende ich ihn genau an?
so sieht meine derzeitig loesung dafuer aus. leider konnte ich ping
bisher nicht beibringen, nach x sekunden abzubrechen, sodass das hier
nicht die endgueltige loesung sein kann. ich verwende das script im
cron, um jede minute einen ping auszusenden und den rueckgabewert zu
erfassen.
#!/usr/local/bin/php -q
<?
unset($output);
unset($exitcode);
include("sqlpasswd.inc");
$matched=false;
$curtime=time();
$lastmonth =
mktime(date("H"),date("i"),date("s"),date("m")-1,date("d"),date("Y"));
exec('ping -c1 '.$pinghost, $output, $exitcode);
if ($exitcode != 0) {
print("Ping failed. \n\n");
while(list(,$line)=each($output)) {
print($line."\n");
}
}
else {
while(list(,$line)=each($output)) {
if (preg_match("/time\=([0-9\.]+)\sms$/i",$line,$match)) {
$matched=$match[1];
}
}
if (!isset($matched)) { $matched=0; }
$mysqlsession=mysql_connect("localhost",$user,$pass);
mysql_select_db("stats",$mysqlsession);
if (!mysql_query("delete from pingstats where timestamp <
".$lastmonth,$mysqlsession)) {
die("Error deleting old records: ".mysql_error($mysqlsession)."\n");
}
if (!mysql_query("insert into pingstats set
timestamp=".$curtime.",replytime=".$matched,$mysqlsession)) {
die("Error inserting new record: ".mysql_error($mysqlsession)."\n");
}
mysql_close($mysqlsession);
}
?>
php::bar PHP Wiki - Listenarchive