Wie bestimmen Access Points das Betriebssystem des Clients?

342
Willi Mentzel

Ich habe festgestellt, dass mein Router (Asus RN-N12E_B1) das Betriebssystem neben den Clients anzeigt, die mit ihm verbunden sind.

Wie stellt es das fest? Über User Agent?

Welche anderen Methoden stehen zur Verfügung, um Informationen über das angeschlossene Gerät zu erhalten?

3

1 Antwort auf die Frage

2
Tonny

Es gibt mehrere Möglichkeiten, und in der Regel verwendet der Router eine Kombination von 1 bis 3 der einfacheren Varianten. Der Router / AP verfügt normalerweise nicht über die CPU-Leistung, um hier etwas erschöpfendes zu tun. Einfach zu viel Arbeit.

Wie auch immer: Es ist nicht garantiert zu arbeiten. Einige Geräte geben nicht viele Informationen preis, sie können mehrdeutig sein und einige Geräte können tatsächlich lügen, um welche Art von Gerät es sich handelt.

Typische Methoden sind:

  1. Bei Apple-Geräten und vielen Telefonen / Tablets können Sie der Hersteller-ID in der MAC-Adresse entnehmen. Der Router verfügt lediglich über eine Map-Tabelle, die bekannte Hersteller-IDs mit dem entsprechenden Betriebssystem vergleicht.
  2. Viele Geräte reagieren in bekannter Weise auf eine Bonjour-, PNRP-, UPNP- oder NetBios-Anforderung. Senden Sie einfach einige dieser Tests und analysieren Sie die resultierenden Antworten. Hieraus können Sie häufig feststellen, ob es sich um Windows (und welche Version), OSX, Linux, einen Drucker (und welches Modell), ein Multimedia-Gerät, einen Fernseher usw. handelt.
  3. Geräte, die SNMP unterstützen, melden häufig ihr Betriebssystem, Modell, Version usw. als Antwort auf eine SNMP-Abfrage. Es ist sehr wenig Aufwand, um diese Informationen vom Gerät anzufordern.
  4. In einigen Fällen gibt die Art und Weise, in der ein Gerät eine DHCP-Anforderung an den Router ausgibt, Informationen zum Betriebssystem an.

Sie haben "User Agent" erwähnt. Ich nehme an, Sie meinen damit eine Browser-User-Agent-Zeichenfolge. Dies ist sehr unwahrscheinlich, da dies einen großen Aufwand zur Implementierung erfordert (der Router muss den gesamten HTTP-Verkehr auf Vorhandensein von Benutzeragenten-Zeichenfolgen überwachen, was einen großen Aufwand erfordert) und ist nur für Clients nützlich, die a) einen Webbrowser haben und b ) wenn der Benutzer die Agentenzeichenfolge nicht ungewöhnlich geändert hat, und c) wenn der Benutzer einen Standardbrowser verwendet, und nicht etwas Unverständliches, und d) wenn der Benutzer nicht im "privaten Modus" surft (was normalerweise nicht angezeigt wird) die normale Benutzeragenten-Zeichenfolge).
Viel Aufwand für sehr wenig zuverlässige Informationen.