PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script zur Überprüfung der Erreichbarkeit der Clients



knoesel
11-02-2003, 10:34
Hi,
ich bin Anfänger in Sachen Perl und PHP, will aber für mein Netzwerk eine DB basteln. In dieser DB sind die Clients mit ihrer IP Adresse gespeichert, nun will ich, dass alle IP Adressen z.B. mit
fping -af /path/to/file
angepingt werden und der Status in die DB zurückgeschrieben wird...
Da das z.B. als Cron Job alle 10 Min gemacht werden soll, kann ich es doch nicht mit PHP machen?!

Für Lösungsansätze wäre ich dankbar!! :)

Malcolm
11-02-2003, 11:42
HI,

ich bin auch noch recht neu bei solchen sachen aber du kannst doch einfach ein shell script nehmmen und das als corn job laufen lassen hier ein beispiel !




ping deineip -c4 && echo Online || echo Offline



Ich hoffe das es dir hilft !

MFG Malcolm

knoesel
11-02-2003, 14:10
naja, ich stelle mir das programm so vor:
aus einer datei, wie dieser:

begin of file:
192.168.0.1
194.25.5.24
172.16.10.11
usw.
end of file

soll das skipt jede ip adresse anpingen und das resultat in die mysql datenbank schreiben. die datei mit den ips kommt ebenfalls aus der db, ist also dynamisch...

:rolleyes:

tuxipuxi
11-02-2003, 15:27
mal langsam:

also das script soll die adressen aus der datei( alle einheitliche syntax ) anpingen und nur DIE, die auch geantwortet haben ausgeben?

knoesel
11-02-2003, 18:32
Ja, halt nicht nur ausgeben, sondern in die Datenbank schreiben...

micha
11-02-2003, 22:11
Hi,

das Auslesen und pingen geht z.B. so:



#!/bin/sh

CONFIG='/Path/to/file/with/ip/addresses'
PING='/bin/ping'
PING_PACKETS='1'
PING_WAIT='2'

add_to_database ()
{
echo "Adding IP '$1' with status '$2' to database"
}

while read ip;
do
status="offline"
$PING -c${PING_PACKETS} -w${PING_WAIT} $ip &>/dev/null
test $(echo $?) -eq 0 && status="online"
add_to_database $ip $status
done < $CONFIG



In der Funktion add_to_database() hast du dann in $1 die Ip-Adresse und in $2 den Status. Mit dem Datenbankeintrag an sich kann ich Dir leider nicht helfen.

Gruß micha

knoesel
12-02-2003, 08:32
Ja, und wie bekomm ich den Kram in die DB????
Wie man die Clients anpingt hat der Kollege vorher ja schon geschrieben, aber der Status soll ja in die DB!´
Oder bin ich zu doof und raff es einfach nicht? :(

mehlvogel
12-02-2003, 09:11
Original geschrieben von knoesel

Da das z.B. als Cron Job alle 10 Min gemacht werden soll, kann ich es doch nicht mit PHP machen?!


Nur so zwischendurch: Das ist so nicht ganz richtig. PHP Skripte können sehr wohl als Cron Jobs laufen und dort arbeiten verrichten. Ich glaub im PHP Forum hatten wir da mal nen Thema zu (-> Suche).

Gaert
12-02-2003, 16:59
Hier ist der Link von dem Mehlvogel sprach:
http://www.mrunix.de/forums/showthread.php?s=&threadid=30701

Mit PHP würde ich es übrigens so machen:


<?php
$file="ipliste.txt";
$ips=file($file);
foreach($ips as $ip) {
if(fopen("http://$ip")) {
//Eintragen in DB ... z.B. MySQL:
mysql_query("INSERT INTO ipliste SET IP='$ip'");
}
}
?>