Ich habe vor kurzem angefangen, mich über Websites wie http://thismachine.info/ zu wundern , auf denen die Betriebssysteminformationen des Benutzers abgerufen werden. Ich konnte nicht herausfinden, wie man das mit PHP macht, und wollte versuchen, es herauszufinden.
Mir ist aufgefallen, dass sie die auflisten user-agent
, die viele Informationen über den Browser geben. Erhalten sie die Betriebssysteminformationen davon oder von etwas anderem? Gibt es eine API, mit der ich das Betriebssystem des Benutzers abrufen kann?
Ich sehe, wie sie den Browser und die IP bekommen haben, konnte aber den Betriebssystemteil nicht herausfinden!
php
operating-system
user-agent
Pattyd
quelle
quelle
echo $_SERVER['HTTP_USER_AGENT'];
wird (bis zu einem gewissen Grad) das Betriebssystem des Benutzers angezeigt. Für mich wurde festgestelltMozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0
, wo ich tatsächlich Windows XP verwende, es ist also keine exakte Wissenschaft.http://thismachine.info/
weiß ich, dass ich Windows XP verwende? Das weiß ich nicht, aber sie müssen ein Skript verwenden, das es findet und ersetzt und anschließend wiedergibt. Meines Wissens gibt es nichts, was das genaue Betriebssystem bestimmen könnte, da ich sehe, dass dies unter die Wertpapierdomäne fallen würde.Windows XP
vom Array widerhallen/windows nt 5.1/i' => 'Windows XP',
Antworten:
Der folgende Code könnte eigenständig erklären, wie http://thismachine.info/ zeigen kann, welches Betriebssystem jemand verwendet.
Was es tut, ist, dass es Ihr Kernbetriebssystemmodell schnüffelt, zum Beispiel
windows nt 5.1
als mein eigenes.Anschließend wird Windows nt 5.1 / i an Windows XP als Betriebssystem übergeben.
Verwenden von:
'/windows nt 5.1/i' => 'Windows XP',
aus einem Array.Man könnte Vermutungen oder eine Annäherung sagen, aber trotzdem ziemlich gut drauf.
Ausgeliehen von einer Antwort auf SO https://stackoverflow.com/a/15497878/
Fußnoten: (19./14. Januar) Am 18. Januar 2014 wurde eine Änderung vorgeschlagen, um
/msie|trident/i
von YJSoft ein neues Mitglied auf SO hinzuzufügen .Der Kommentar lautete wie folgt:
Kommentar: weil die ua von msie11 keine msie enthält (stattdessen enthält sie dreizack)
Ich habe dies ein wenig recherchiert und ein paar Links gefunden, die die Trident-Zeichenfolge erklären.
Obwohl die Bearbeitung abgelehnt wurde (nicht von mir selbst, sondern von einigen anderen Herausgebern), lohnt es sich, die obigen Links zu lesen und Ihr richtiges Urteilsvermögen zu verwenden.
Laut einer Frage zum Erkennen von SUSE haben Sie diesen Code unter der folgenden URL gefunden:
Zusätzlicher Code:
Bearbeiten: 12. April 2015
Ich habe gestern eine Frage bemerkt, die für diese Fragen und Antworten relevant sein könnte und für einige hilfreich sein könnte. In Bezug auf:
Mozilla/5.0 (Linux; Android 4.4.2; SAMSUNG-GT-I9505 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36
Eine weitere Bearbeitung und Hinzufügen eines Referenzlinks, der gefragt (und heute, 4./16. November beantwortet / akzeptiert) wurde und möglicherweise von Nutzen ist.
Konsultieren Sie die Fragen und Antworten hier auf Stack:
quelle
'/windows nt 6.3/i'
ist für Windows 8.1"mavericks HTTP_USER_AGENT"
@ben_aaron'/cros/i' => 'Chrome OS'
Wenn Sie eine Website aufrufen, sendet Ihr Browser eine Anfrage mit vielen Informationen an den Webserver. Diese Informationen könnten ungefähr so aussehen:
Diese Informationen werden alle vom Webserver verwendet, um zu bestimmen, wie die Anforderung verarbeitet werden soll. die bevorzugte Sprache und ob Komprimierung zulässig ist.
In PHP werden alle diese Informationen im
$_SERVER
Array gespeichert . Um zu sehen, was Sie an einen Webserver senden, erstellen Sie eine neue PHP-Datei und drucken Sie alles aus dem Array aus.Auf diese Weise erhalten Sie eine schöne Darstellung von allem, was an den Server gesendet wird. Dort können Sie die gewünschten Informationen extrahieren, z. B.
$_SERVER['HTTP_USER_AGENT']
um das Betriebssystem und den Browser abzurufen.quelle
Habe den folgenden Code aus dem PHP-Handbuch für get_browser übernommen .
Das
$browser
Array enthältplatform
Informationen, die Ihnen das verwendete Betriebssystem anzeigen.Bitte lesen Sie unbedingt den Abschnitt "Notizen" auf dieser Seite. Dies könnte etwas sein, das (thismachine.info) verwendet, wenn nicht bereits in anderen Antworten darauf hingewiesen wird.
quelle
Basierend auf der Antwort von Fred-II wollte ich meine Meinung zur getOS-Funktion teilen, sie vermeidet Globals, führt beide Listen zusammen und erkennt die Architektur (x32 / x64).
quelle
Wenn Sie all diese Informationen erhalten möchten, lesen Sie möglicherweise Folgendes:
http://php.net/manual/en/function.get-browser.php
Sie können den Beispielcode ausführen und sehen, wie er funktioniert:
Das obige Beispiel gibt etwas Ähnliches aus wie:
quelle
Wenn Sie nur sehr wenige Informationen wie eine Klasse in Ihrem HTML-Code für gängige Browser benötigen, können Sie Folgendes verwenden:
die "Safari" oder "Firefox" oder "Chrom" oder "dh 8", "dh 9", "dh 10", "dh 11" zurückgeben.
quelle
Sie können nach diesen Informationen in suchen
$_SERVER['HTTP_USER_AGENT']
, aber ihr Format ist frei, kann nicht garantiert gesendet werden und kann vom Benutzer aus Datenschutz- oder anderen Gründen leicht geändert werden.Wenn Sie die
browsecap
Anweisung nicht festgelegt haben , wird eine Warnung zurückgegeben. Um sicherzustellen, dass es festgelegt ist, können Sie den Wert mit abrufenini_get
und prüfen, ob er festgelegt ist.Wie kba in seiner Antwort erklärt hat, sendet Ihr Browser beim Laden einer Webseite viele Informationen an den Server. Die meisten Websites verwenden diese User-Agent- Informationen, um das Betriebssystem, den Browser und verschiedene Informationen des Besuchers zu ermitteln.
quelle