ping auswerten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
wotan
Beiträge: 113
Registriert: 16.03.2004 20:41:04

ping auswerten

Beitrag von wotan » 23.09.2004 12:45:50

Hallo,

wie kann ich mit

Code: Alles auswählen

$Ausgabe .= exec("ping -c4 ".$host);
die Ausgabe von Ping auswerten?

Ich möchte damit eigentlich nur prüfen, ob die IP belegt ist oder nicht vergeben ist.

Momentan bekomme ich nur als Ausgabe:

Code: Alles auswählen

round-trip min/avg/max = 0.5/0.6/0.9 ms
wenn die IP da ist und
bei einer mir bekannten IP die noch nicht vergeben ist:

Code: Alles auswählen

4 packets transmitted, 0 packets received, 100% packet loss
Das Ergebnis zeigt mir aber nur, das alle Pakete nicht angekommen sind.
mfg
wotan

Benutzeravatar
QT
Beiträge: 1242
Registriert: 22.07.2004 21:08:02
Wohnort: localhost

Beitrag von QT » 23.09.2004 12:53:11

Bin mir nicht sicher, ob ich wirklich verstanden habe, was Du moechtest, mir kam aber folgendes in den Sinn:

Code: Alles auswählen

if ping -c1 $HOST >/dev/null 2>&1; then
    vergeben
else
    nicht vergeben
fi

Benutzeravatar
wotan
Beiträge: 113
Registriert: 16.03.2004 20:41:04

Beitrag von wotan » 23.09.2004 14:07:47

Code: Alles auswählen

if ping -c1 $HOST >/dev/null 2>&1; then
    vergeben
else
    nicht vergeben
fi
wie kann ich diese Abfrage verstehen? Sorry, aber das ist für mich Bahnhof. :?:
mfg
wotan

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 23.09.2004 14:27:37

tja.. wär erstmal interessant in was du programmierst... sieht ein wenig nach PHP aus? oder Perl?

QT hat ein Shell Script geschrieben..
es funktioniert so:

du musst den Befehl "ping -c1 $HOST >/dev/null 2>&1" für sich sehen..
er pingt an und alle Ausgaben werden auf /dev/null (ins nichts) geschickt.. aber der RETURN Wert wird an "if" übergeben..

also

if "RECHNER_ANPINGEN_ERFOLGREICH"
then
echo "vergeben"
else
echo "nicht vergeben"
fi
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
wotan
Beiträge: 113
Registriert: 16.03.2004 20:41:04

Beitrag von wotan » 23.09.2004 14:44:11

Was er geschrieben hat, war mir klar, nur nicht was die Zeile

Code: Alles auswählen

ping -c1 $HOST >/dev/null 2>&1
bedeuten soll.

Somit kann ich ja nun auch nicht prüfen ob die IP auf einen Server aufgelegt ist oder nicht. Darum geht es mir.

Andere Frage.
Wie bekomme ich die Komplette Ausgabe von:

Code: Alles auswählen

exec ("ping -c4 ".$host);
in eine Var, also nicht nur wie es jetzt ist die letzte Zeile von ping?
[edit]^^ hat sich erledigt, bin schon dahintergekommen[/edit]
mfg
wotan

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 23.09.2004 15:17:59

sorry, aber erstens weiß ich immer noch nicht in welcher Prog.-Sprache du dich bewegst und zweitens willst du scheinbar eine DEFINITIVE Aussage erhalten ob eine IP vergeben ist oder nicht..

mit "Ping" kriegst du aber nur raus ob ein Rechner die IP grad hat oder nicht.. aber du kriegst NICHT raus ob die IP wirklich GAR nicht vergeben ist.. der Rechner mit der IP 192.168.0.56 könnte einfach aus sein und schon würde "ping" dir sagen, dass die IP frei ist.. und wenn er an ist, sagt dir ping nur das er an ist..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
wotan
Beiträge: 113
Registriert: 16.03.2004 20:41:04

Beitrag von wotan » 23.09.2004 15:29:12

Das ganze soll mit PHP umgestezt werden.

Aber so wie ich das jetzt langsam mit bekomme ist es nicht möglich irgendwie zu prüfen ob eine IP aufgeschaltet ist oder nicht. Gut dann muss ich mir was anderes einfallen lassen.
mfg
wotan

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 23.09.2004 15:31:34

was willst du eigentlich erreichen (also wirklich etwas detailierter) ??
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
wotan
Beiträge: 113
Registriert: 16.03.2004 20:41:04

Beitrag von wotan » 23.09.2004 15:42:17

Monitoring-Tool schreiben!

Ablauf:
  1. Prüfen ist die IP erreichbar und aufgeschaltet
    Wenn erreichbar, dann prüfe Dienste
    Dienste nicht erreichtbar, schicke Meldung an Admin
    Wenn nicht errichbar, schicke Meldung sofort an Admin
mfg
wotan

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 23.09.2004 16:04:27

hmm.. ach sooo.. du hast das Problem, dass du nicht weißt WELCHE Rechner online sein müssten? Also du willst quasi automatisch herausfinden ob ein Rechner noch da ist oder nicht?

Hmm.. ist eigentlich nicht möglich... es ginge vielleicht indem du dir eine Logik aufbaust das du eine eigene Tabelle hälst und einfach bei jedem Ping versuch per "nmap" einfach das Netz durchpingst in welchem die Rechner stehen und dann sobald einmal eine IP antwortet diese einfach in deine Tabelle eintragen und ab dann immer mit überwachen.. und dann reicht es ja aus alle IPs in der Tabelle mit dem Printout von "nmap" zu vergleichen...

oder was hälst du davon?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Antworten