phpbar.de logo

Mailinglisten-Archive

[php] Server mit PHP anpingen?

[php] Server mit PHP anpingen?

Markus Dobel m_(at)_rkus.dobel.de
Sat, 15 Jan 2000 18:55:02 +0100


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