Moin Experten,
irgendwie stehe ich grade auf dem Schlauch… was ich suche, ist so eine Art kleiner Bruder von nmap: Ich brauche ein CLI-Tool, dem ich eine IP-Zieladresse und einen Port angebe und was mir als Ergebnis einen Return-Code gibt, je nach dem, ob der Port offen ist oder nicht. Das Ganze unter Windows.
(Ist für die Überwachung eines nicht SNMP-fähigen Gerätes)
Wer kennt so was?
Gruß
Stefan
Hi,
irgendwie stehe ich grade auf dem Schlauch… was ich suche,
ist so eine Art kleiner Bruder von nmap: Ich brauche ein
CLI-Tool, dem ich eine IP-Zieladresse und einen Port angebe
und was mir als Ergebnis einen Return-Code gibt, je nach dem,
ob der Port offen ist oder nicht. Das Ganze unter Windows.
Wer kennt so was?
sowas ist schnell gekriptet, in nahezu jeder Skriptsprache.
Hast Du da irgendeine zur Verfügung?
Gruß,
Malte
irgendwie stehe ich grade auf dem Schlauch… was ich suche,
ist so eine Art kleiner Bruder von nmap: Ich brauche ein
CLI-Tool, dem ich eine IP-Zieladresse und einen Port angebe
und was mir als Ergebnis einen Return-Code gibt, je nach dem,
ob der Port offen ist oder nicht. Das Ganze unter Windows.
Warum fällt Telnet für Dich aus?
Hi,
sowas ist schnell gekriptet, in nahezu jeder Skriptsprache.
Hast Du da irgendeine zur Verfügung?
Naja, was auf einem Win2003-Server halt so rumfliegt: Powershell, normale Shell, JRE
Gruß
Stefan
Warum fällt Telnet für Dich aus?
Weil mir aus den Stegreif keine Möglichkeit einfällt, wie ich Telnet für einen automatisierten Poll einsetzen könnte. Wie bekäme ich aufgebaute Sessions wieder zu?
Gruß
Stefan
Hi,
sowas ist schnell gekriptet, in nahezu jeder Skriptsprache.
Hast Du da irgendeine zur Verfügung?
Naja, was auf einem Win2003-Server halt so rumfliegt:
Powershell, normale Shell, JRE
also, in PHP, Perl oder Bash würd ich’s wohl hinbekommen, aber mit dem was Du da hast eher nicht
Vielleicht erbarmt sich ja noch jemand.
Gruß,
Malte
1 „Gefällt mir“
Hi,
also, in PHP, Perl oder Bash würd ich’s wohl hinbekommen, aber
mit dem was Du da hast eher nicht 
Immer diese schnöde Diskriminierung von unterprivilegierten Windows-Usern! *theatralisch schluchz*
Ok, auf die MS-Gurke noch ein easyphp draufzubretzeln sollte nicht das Problem sein. Also: php wäre genehm. 
Mit erwartungsfrohen Grüßen
Stefan
Weil mir aus den Stegreif keine Möglichkeit einfällt, wie ich
Telnet für einen automatisierten Poll einsetzen könnte. Wie
bekäme ich aufgebaute Sessions wieder zu?
Telnet automatisiert per Bash- oder Perlskirpt anstoßen, schauen ob es nen exitcode gibt der auf nen Fehler hindeutet oder ob sich die Session aufbauen läßt, endsprechen zurückmelden und das Skript beenden, was die TelnetSession mitnimmt. Aber vielleicht denke ich auch zu pragmatisch.
Hi,
also, in PHP, Perl oder Bash würd ich’s wohl hinbekommen, aber
mit dem was Du da hast eher nicht 
Ok, auf die MS-Gurke noch ein easyphp draufzubretzeln sollte
nicht das Problem sein. Also: php wäre genehm. 
<?php $host = $argv[1];<br /> $port = $argv[2];
if (!($host && $port)) {
echo "usage: tcptest <host>\n";<br> exit;<br> }<br> $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);<br> if (socket_connect($socket, $host, $port) === false) {<br> $errorcode = socket_last_error();<br> $errormsg = socket_strerror($errorcode);<br> socket_close($socket);<br> exit(1);<br> } else {<br> exit(0);<br> }<br>?><br></host>
Bei mir unter nem Linux tut’s das. Wie dein Windows damit umgeht, kann ich jetzt nicht sagen. Das Ergebnis wird als exit-Code zurückgegeben, wenn Du’s als Ausgabe nach STDOUT haben willst, kannst Du einfach die 1 und die 0 in Anführungszeichen setzen.
Gruß,
Malte
PS: Geht bestimmt auch noch eleganter. Bin kein Coder.
1 „Gefällt mir“
Moin,
- bei mir heisst die Datei tcptest
- ggf. musst Du noch den Pfad zum PHP-Binary einfügen, nach
der ersten Zeile hinter nem Shebang - k.A., wie Windows das
macht
Erst mal vielen Dank! Ich werde das gleich am Montag ausprobieren und Bescheid geben, ob es läuft.
- das ist jetzt nur für TCP gebaut. Brauchst Du auch UDP?
Hmmm… ich denke - erst mal nein. Bei irgendwelchen Diensten, die über UDP kommunizieren, müsste ich dann sowieso etwas näher drauf eingehen, die die Kommunikation aussieht. (Nicht das das nicht nützlich wäre - wie kriegt man z.B. mit einem Script raus, ob ein NTP-Server-Dienst noch läuft?).
Gruß
Stefan
Hi,
Hmmm… ich denke - erst mal nein. Bei irgendwelchen Diensten,
die über UDP kommunizieren, müsste ich dann sowieso etwas
näher drauf eingehen, die die Kommunikation aussieht. (Nicht
das das nicht nützlich wäre - wie kriegt man z.B. mit einem
Script raus, ob ein NTP-Server-Dienst noch läuft?).
indem man das passende Nagios-Plugin verwendet 
Gruß,
Malte
indem man das passende Nagios-Plugin verwendet 
gnagnagna! ;Þ
Wenn ich mal irgendwann VIEL Zeit habe, werde ich mal anfangen auf Nagios umzusteigen. Das Problem ist, dass wir in unser bisheriges System im Laufe der Jahre jede Menge Arbeit reingesteckt haben.
Wenn wir z.B. auf eine WAN-Strecke doppelklicken wird automatisch die Excel-Datei mit den Vertrags-Daten der Strecke geöffnet usw. Mir graut davor, das alles nochmal unter Nagios nachzuführen - auch wenn mir bewusst ist, das Nagios das mächtigere System ist.
Unser eigentliches Problem ist halt, dass alles was unter Windows läuft immer klickibunti sein muss. Selbst absolut systemnahe Tools kommen heutzutage mit einer GUI und ohne CLI. Da fasst man sich an den Kopp! 
Gruß
Stefan
indem man das passende Nagios-Plugin verwendet 
gnagnagna! ;Þ
Wenn ich mal irgendwann VIEL Zeit habe, werde ich mal anfangen
auf Nagios umzusteigen. Das Problem ist, dass wir in unser
bisheriges System im Laufe der Jahre jede Menge Arbeit
reingesteckt haben.
Wenn wir z.B. auf eine WAN-Strecke doppelklicken wird
automatisch die Excel-Datei mit den Vertrags-Daten der Strecke
geöffnet usw.
*grusel* Klingt so ganz anders als in meiner Welt…
Mir graut davor, das alles nochmal unter Nagios
nachzuführen - auch wenn mir bewusst ist, das Nagios das
mächtigere System ist.
Nunja, Du könntest aber tatsächlich die Nagios-Plugins verwenden - auch ohne Nagios. Das sind ja auch nur kleine Programme, die irgendwas machen und dann einen Status zurückgeben. Die sind halt i.W. in C, Perl oder Python geschrieben.
Gruß,
Malte
Wenn wir z.B. auf eine WAN-Strecke doppelklicken wird
automatisch die Excel-Datei mit den Vertrags-Daten der Strecke
geöffnet usw.
*grusel* Klingt so ganz anders als in meiner Welt…
Gruselst Du wegen Excel oder wegen der Vertragsdaten? *g*
Letztere sind ganz nützlich, wenn man 5 verschiedene Provider für DFÜ-Strecken hat und auf die Schnelle wissen muss, welche Hotline man denn nu anrufen muss…
Nunja, Du könntest aber tatsächlich die Nagios-Plugins
verwenden - auch ohne Nagios. Das sind ja auch nur kleine
Programme, die irgendwas machen und dann einen Status
zurückgeben. Die sind halt i.W. in C, Perl oder Python
geschrieben.
Das wäre eine Überlegung wert. Danke für den Tipp!
Gruß
Stefan
Wenn wir z.B. auf eine WAN-Strecke doppelklicken wird
automatisch die Excel-Datei mit den Vertrags-Daten der Strecke
geöffnet usw.
*grusel* Klingt so ganz anders als in meiner Welt…
Gruselst Du wegen Excel oder wegen der Vertragsdaten? *g*
Wegen Excel und wegen Doppelklicken auf WAN-Strecken.
Für den Core hab ich für sowas eine Omnigraffle-Datei, die ein wenig eierlegende Wollmilchsau ist - und den Vorteil hat, daß man sie auch komplett ausdrucken kann (ein Rollendrucker mit mind. 42" Breite wird empfohlen
). Damit hab ich alles auch greifbar, wenn die IT mal nicht zur Verfügung steht.
Ansonsten steh ich für Daten, an denen kollaborativ gearbeitet wird, auf Wikis, auch wegen Versionierung und einfachem Sharing.
Wir fahren halt eher den unixoiden Ansatz - one tool, one job und umgekehrt. Unsere Überwachung soll nichts anderes tun als zu überwachen und im Notfall ein rotes Signal anzeigen (und ggf. Mails oder SMSe schicken).
Außerdem finde ich es immer beruhigend, wenn ich weiß, daß ich von überall aus, auch von einem System welches vielleicht nur einen Browser oder gar eine Shell bietet, auf alles wesentliche zugreifen kann (ja, geschützt natürlich).
Viele Grüße,
Malte
Moin moin,
so, ich habe php installiert und Dein Script ausprobiert.
Es läuft - allerdings mit ein paar Kinderkrankheiten. Es könnte auch sein, dass mein php da zu geschwätzig ist:
-
wenn ohne Argumente aufgerufen kommt für die Zeilen 2 und 3 eine Fehlermeldung „undefined offset“. Ok, da könnte ich noch eine Abfrage nach argc einbauen
-
Schlimmer aber: wenn der Port *nicht* offen ist, dann wird eine ellenlange Warnung ausgegeben von wegen „unable to connect blalabersülz“
Ich als php-Laie würde da jetzt einfach irgendwo ein error_reporting(0); dazwischensetzen. Ich denke nicht, dass man damit was kaputt macht, oder?
Gruß
Stefan
OMFG!
http://support.microsoft.com/default.aspx?scid=kb;en…
Ich geh’ mal 'ne Runde mit dem Kopf an die Wand ditschen - bbl!
Gruß
Stefan
Hi,
Telnet automatisiert per Bash- oder Perlskirpt anstoßen,
schauen ob es nen exitcode gibt der auf nen Fehler hindeutet
oder ob sich die Session aufbauen läßt, endsprechen
zurückmelden und das Skript beenden, was die TelnetSession
mitnimmt. Aber vielleicht denke ich auch zu pragmatisch.
Nene, Deine Denke ist schon in Ordnung. Aber ich habe mich eine Weile im Rahmen eines Rancid-Projektes mit der Automatisierung von Telnet-Prozessen beschäftigt: der Teufel steckt da oft im Detail.
Wehe man macht einen Fehler und berücksichtigt nicht alle möglichen und unmöglichen Fälle - schon hat man eine nicht geschlossene Telnet-Session.
Und bei einem 5-Minuten-Poll hat man schnell mal ein Gerät in den Orkus geschossen, weil die CPU nur mehr mit irgendwelchen telnet-server-tasks beschäftigt ist (ich spreche aus Erfahrung - es war eine Core-Komponente… *pfeif*)
Gruß
Stefan