Test ob Dienst vorhanden ist

neela

Bekanntes Mitglied
In einem Programm muss ich zunächst Testen ob ein Server vorhanden ist das mache ich in dem ich ein Socket öffnen
Java:
public void servercheck() {

		try {
			Socket s = new Socket(Host, 80);
			writeInfo("Der is Server " + Host + " ist online");
			s.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			writeInfo("Der Server ist " + Host + " ist down");
			System.exit(2);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	};

Wird die Exception ausgelöst weis ich das der server net vorhanden ist.
Aber wie kann ich prüfen ob der Dienst vorhanden bzw nicht vorhanden ist? Ich komme in diesen Fall gerade nicht auf die Lösung.

Währe nett von euch wenn ihr mir auf die Sprünge helft
Vielen Dank
neela
 

FArt

Top Contributor
Der Dienst muss eine entsprechende Methode zur Verfügung stellen.

Es kann auch ausreichen die Antwort des Servers auf eine bestimmte Anfrage hin zu analysieren, das wäre aber eigentlich unschön und auch Anfälliger gegenüber Änderungen.
 

thewulf00

Bekanntes Mitglied
Also die einzige Variante zu prüfen, was hinter einem offenen Port steckt, ist eine signaturbasierte Analyse, wie es z.B. nmap macht. Das erfordert aber eine große Datenbank oder eine sehr kleine Anzahl an "entdeckbaren" Diensten.
 

r.w.

Bekanntes Mitglied
Wenn Du eine Verbindung zu Port 80 bekommst, ist die Wahrscheinlichkeit schon mal groß,
dass auf dem Host der Webserver-Dienst läuft. ;-) Auch wenn das alleine nicht eine 100%-ige
Garantie dafür ist.

Wenn es ein eigener Server ist, kann man die Diensterkennung in der Regel an dem
verfügbaren Port fest machen. Voraussetzung ist natürlich, dass es sich um einen Dienst handelt,
der an einem Port lauscht.

VG ROlf
 

Ähnliche Java Themen

Neue Themen


Oben