# Betriebssystem über Netzwerk ermitteln



## Andi-Bar (23. Jan 2006)

Hallo!
Ich habe zwar schon etwas länger gegoogelt und auch hier im Forum die Suche-Funktion benutzt, doch habe ich noch keine Lösung/Antwort zu meinem Problem gefunden .
Und zwar:
ist es möglich, über Java eine Anfrage im Netzwerk loszuschicken, dass man anhand der Antwort erkennen kann, ob sich auf den jeweiligen Clients Windows oder Unix befindet?

Möglich wäre es zwar, dass ich diese Identifizierung über den DNS-Namen mache, da die Unix und Windows-Rechner anders benannt werden, doch bei einer Umstellung der DNS-Konventionen hier im Netzwerk wäre das dann wieder pflegebedürftig...

Ich hoffe, ihr könnt mir weiter helfen.

THX
Andi


----------



## AlArenal (23. Jan 2006)

Geht es um die Erkennung bei euch im Intranet, oer wie? Habt ihr den Überblick verloren, was worauf läuft? 

Also ne einfache Möglichkeit gibts nicht. Ne sichere Möglichkeit auch nicht. U.a. aus sicherheitstechnischen Gründen macht es auch keinen Sinn für ein System, jedem auf die Nase zu binden was man ist. Windows-Rechner kann man bisweilen an spezifischen Ports erkennen, die offen sind, aber wenn der passende Dienst deaktiviert ist oder ne Firewall drauf läuft..


----------



## Andi-Bar (23. Jan 2006)

Den Überblick verloren nicht wirklich... aber jetzt soll eine Datenmodifikation auf verschiedene Clients im Nachtbetrieb verteilt werden. Unix und Win-Clients. Natürlich nehmen die diese Modifikation auf verschiedenen Wegen vor, weshalb ich von der Serverseite her kontrollieren müsste, welches OS jeweils läuft, um dann einen jeweils bestimmten Dienst zu aktivieren...

Aber wenn das so ohne weiteres nicht möglich ist, muss ich wohl doch auf den Weg mit der DNS-Namenserkennung zurück greifen  :?...


----------



## Bleiglanz (23. Jan 2006)

mach auf einem Linux-Rechner

nmap -O <ipadresse>

als root, das ist die einzige möglichkeit die ich kenne...


----------



## Guest (23. Jan 2006)

Was bewirkt dieser Befehl genau?
Leider habe ich grade keine Unix-Maschine zur Verfügung, dass ich das testen könnte ... dauert wohl auch noch ne Weile, bis die Hardware für eine Testumgebung zur Verfügung steht...
Wird mit diesem Befehl zuverlässig erkannt, ob der Client win oder unix ist?


----------



## AlArenal (23. Jan 2006)

```
# nmap -O [url]www.java-forum.org[/url]

Starting nmap 3.30 ( [url]http://www.insecure.org/nmap/[/url] ) at 2006-01-23 13:42 CET
Interesting ports on server117-han.de-nserver.de (85.158.176.16):
(The 1634 ports scanned but not shown below are in state: closed)
Port       State       Service
21/tcp     open        ftp
22/tcp     open        ssh
25/tcp     open        smtp
80/tcp     open        http
110/tcp    open        pop-3
143/tcp    open        imap2
443/tcp    open        https
587/tcp    open        submission
995/tcp    open        pop3s
3306/tcp   open        mysql
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 - 2.5.20, Linux Kernel 2.4.18 - 2.5.70 (X86)

Nmap run completed -- 1 IP address (1 host up) scanned in 5.974 seconds
```


```
# nmap -O 80.145.108.99

Starting nmap 3.30 ( [url]http://www.insecure.org/nmap/[/url] ) at 2006-01-23 13:52 CET
Interesting ports on p50916C63.dip.t-dialin.net (80.145.108.99):
(The 1638 ports scanned but not shown below are in state: closed)
Port       State       Service
80/tcp     open        http
515/tcp    open        printer
1723/tcp   open        pptp
5001/tcp   open        commplex-link
5002/tcp   open        rfe
5003/tcp   open        filemaker
Aggressive OS guesses: 
Zyxel Prestige 642R-11 ASDL router running ZyNOS (94%), 
Linux 1.3.20 (X86) (92%), 
3Com Sharkfin/Tailfin Cable Modem (91%), 
Cisco 761 running c760-in.r.NET3 4.3(1) (91%), 
Exabyte X80 tape backup robot (91%), 
Intel NetStructure 470T Switch (91%), 
Cisco Catalyst 1900 switch, 
Bay networks 350-450 switch,  
or Netopia DSL/ISDN router (91%), 
IBM 2210 router (91%), 
Proteon OpenRoute 2.1 on a RBX200 Router or IBM 2210 Router (91%), 
Axis 200+ Web Camera running OS v1.42 (90%)
No exact OS matches for host (test conditions non-ideal).

Nmap run completed -- 1 IP address (1 host up) scanned in 22.654 seconds
```


----------



## Bleiglanz (23. Jan 2006)

aber Vorsicht, auf den Ziel PCs muss mindestens 1 Port offen und 1 Port geschlossen sein 

ein neuereres Windows XP mit voller Firewall wird da schon mal als 


```
Starting nmap 3.30 ( [url]http://www.insecure.org/nmap/[/url] ) at 2006-01-23 13:02 CET
Warning:  OS detection will be MUCH less reliable because we did not find at least 1 open and 1 closed TCP port
Interesting ports on 192.168.0.98:
(The 1642 ports scanned but not shown below are in state: filtered)
Port       State       Service
139/tcp    open        netbios-ssn
445/tcp    open        microsoft-ds
Device type: general purpose
Running: IBM AIX 4.X
OS details: IBM AIX 4.3.2.0-4.3.3.0 on an IBM RS/*
 
Nmap run completed -- 1 IP address (1 host up) scanned in 75.877 seconds
```
erkannt


----------



## Andi-Bar (23. Jan 2006)

Hmm naja, wenn Win XP so unzuverlässig erkannt wird, kann ich mich leider nicht drauf verlassen  - es geht hierbei ja um produktive Prozesse..., ansonsten wäre es schon ein guter Ansatz gewesen.
Kennt ihr vielleicht Möglichkeiten in anderen Programmier- / Scriptsprachen, so etwas umzusetzen? Bin bereit dafür noch was zu lernen  :wink:


----------



## AlArenal (23. Jan 2006)

Wie sollte das denn anders funktionieren? Wenn die Rechner übers Netzwerk nicht mehr Infos rausrücken und diese noch dazu falsch interpretiert werden können, wars das.

Ehrlich gesagt verstehe ich auch die Ausgangssituation nicht. Du musst vom Server aus Daten auf Clients updaten? Wie greift der Server denn auf die Clients zu und worin unterscheiden sich Daten für die Zielsysteme? Und warum machen die Clients nicht das Update und warum weißt du nicht auf welchem Rechner was läuft?


----------



## sliwalker (24. Jan 2006)

Hi,

nur son Einwurf falls Dir gar nicht mehr einfällt.
Du könntest mit PHP oder JavaScript den Browser erkennen lassen. Daran kannst Du es relativ genau ablesen, was Linus und was Windows ist. Ausser beide ham Mozilla...ka...kenne mich nicht genau mit den ganzen Browserkennungen aus, die da zurückgegeben werden. Müssten die Rechner natürlich nur von sich aus, auf Dein Skript zugreifen. IP-Adresse wird ja dann mitgeliefert.

greetz
SLi


----------



## Bleiglanz (24. Jan 2006)

a) installier auf jedem Client einen kleinen Echo Server, der sich über TCP abfragen lässt und der das OS zurückgibt

b) also jetzt mal ehrlich: wie soll das gehen, von einem Host mit voll aktivierter Firewall auf allen Ports "remote das Betriebssystem abfragen", ausser dem Telefon und den user anrufen fällt mir dazu nix ein

c) mach halt alles über WebStart, da ist eine OS_Weiche mit eingebaut

```
<resources os="Windows">
    <nativelib href="windows/j3dDLL.jar"/>
  </resources>
  <resources os="linux" arch="i386">
    <nativelib href="linux/i386/j3d.so.jar"/>
  </resources>
  <resources os="linux" arch="ppc">    
    <nativelib href="linux/ppc/j3d.so.jar"/> 
  </resources>
```


----------



## Guest (24. Jan 2006)

Naja ist alles nicht so ohne weiteres zu implementieren...
bisher hab ich auch nur die Kundenanfrage und muss weitere Möglichkeiten konzeptionieren - ok eine Möglichkeit kann ich wohl jetzt ausschließen.
Danke für alle Antworten - ihr habt mich voran gebracht  :wink:


----------

