[Javascript / PHP] OS per Javascript ermitteln / Browser per PHP ermitteln

digiTALE

Lt. Junior Grade
Registriert
Juli 2004
Beiträge
270
Hallo ihr User,

ich habe gelesen das man per JavaScript das Betriebssystem in einer HTML Seite ermitteln kann. Ich denke mal nich das sowa auch per PHP geht. Als Ausgabe soll dann erfolgen z.B. "Windows XP".

Zum Zweiten will ich per PHP die Browser Identifikation ermitteln und auf meiner Homepage darstellen. Habe auch schon ein Script gefunden aber es ist sehr lang "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iOpus-I-M)".
Geht das nicht kürzer wie z.B. "Mozilla oder Internet Explorer".

thx digiTALE
 
Betriebssystem kann ich dir leider nicht helfen.
Browser ist meines Wissens nach
navigator.appName,
und für die Version des Browsers:
navigator.appVersion
bin mir aber nich sicher! :freak:
 
das lange ist das was ein browser sendet(falls man es nicht geändert/entfernt hat).
du musst dir also davon die blöcke raussuchen, indem du zB das ; als trenner nimmst. vll gibts ja auch ne ausgabe die nur die einzelnen werte liefert. das musst du ja aber nicht ausgeben. du kannst ja bestimmen dass er bei nt5.1 immer Windows XP ausgeben soll.
 
<?php
/* Browser bestimmen */
$browser = getenv("HTTP_USER_AGENT");
echo $browser;
?>

echo = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iOpus-I-M)


Bei diesem Befehl kann ich nichts kürzen oder trennen.
Da ich nicht soviel Platz habe brauche ich einen anderen Befehl der mir nur den
Browsertyp ermittelt und einen anderen Befehl der mir das Betriebsystem ermittelt.

hier eine Seite bei dem sowas ist www.peterhuth.de,
ganz oben rechts.
Er muss es doch auch irgendwie hinbekommen haben!

thx digiTALE
 
digiTALE schrieb:
hier eine Seite bei dem sowas ist www.peterhuth.de,
ganz oben rechts.
Er muss es doch auch irgendwie hinbekommen haben!

bei mir steht da:

Herzlich Willkommen!
IP-Adresse: 84.191.159.25
Computername/Einwahlname: p54BF9F19.dip0.t-ipconnect.de
Browser: NT 5.1
Betriebssystem:

^^kann also auch ned so ganz stimmen.

Wen nes dir nur darum geht, IE, FF und Opera zu unterscheiden, dann durchsuch diesen HTTP_USER_AGENT String.

Wenn "Opera" drin steht, isses definitiv Opera.
Wenn "MSIE" drin steht und "Opera" nicht drin steht, isses der IE
Und die Restlichen Fälle kannste dann als "Mozilla-kompatibel" oder so abtun *gg*


Einfach mal die möglichen HTTP_USER_AGENT Strings aller Browser miteinander vergleichen und ein Identifikationsmerkmal für jeden Browser suchen =)
 
Also bei mir steht da

Herzlich Willkommen!
IP-Adresse: 84.59.60.192
Computername/Einwahlname: dsl-084-059-060-192.arcor-ip.net
Browser: iOpus-I-M)
Betriebssystem: Windows XP



@pcw

Ich arbeite jetzt das erste mal mit PHP.
Einfach mal die möglichen HTTP_USER_AGENT Strings aller Browser miteinander vergleichen und ein Identifikationsmerkmal für jeden Browser suchen =)
Aber wie mach ich das denn jetzt?
 
Hier das "Ultimate client-side JavaScript client sniff" Script von Netscape Communications.
Such mal im Netz. Es gibt mit Sicherheit noch neuere Versionen
 

Anhänge

  • browser-script.txt
    15,9 KB · Aufrufe: 729
Boron schrieb:
Hier das "Ultimate client-side JavaScript client sniff" Script von Netscape Communications.
Such mal im Netz. Es gibt mit Sicherheit noch neuere Versionen

Das ding is recht gut find ich :)
 
@Quidoff

habe jetzt das php script in meiner seite kopiert aber in dem script ist noch keine echo ausgabe vorhanden. oder doch, übersehen !?

naja habe jedenfalls das noch hinzugefügt zur echo ausgabe

browser:
<?php echo $browser; ?>

betriebssystem:
<?php echo $os; ?>


oder mach ich was Falsch, denn leider wird bei mir nix angezeigt.
 
versuch das:

PHP:
<?php echo browser(); ?>
 
danke @pcw hat funktioniert. *freu*

dann wär ja alles geklärt. nochmals danke an alle.

mfg digiTALE
 
@quidoff

darf man bemängeln dass die konqueror abfrage nicht geht da das mozilla/5.0 das schon abfängt und bei os ein
Code:
		elseif( eregi("Linux", $info) )

			$os = "Linux";
fehlt?
 
Natürlich darf man meinen Code bemängeln. Aber was für eine bring denn "$_SERVER['HTTP_USER_AGENT']" bei einem Konqueror Browser? Wenn ich das wüsste, dann würde ich es auch einbauen.

KoЯn
 
kannste haben:
konqueror schrieb:
Mozilla/5.0 (compatible; Konqueror/3.4) KHTML/3.4.1 (like Gecko)
da das mozilla/5.0 drin steht wird es schon vorher abgefangen, zum konqueror kommt er also garnicht.

das ganze kann je nach einstellung auch länger werden:
konqueror schrieb:
Mozilla/5.0 (compatible; Konqueror/3.4; Linux 2.6.12-gentoo; X11; i686; de) KHTML/3.4.1 (like Gecko)

dann sind betriebssystem(linux), version(2.6.12-gentoo), plattform(x11), maschine(i686) und sprache(de) mit drin. is aber glaube eher unwichtig

viel spaß beim abändern :)

für die linux-ausgabe sollte dann eigentlich das oben genannte reichen.

PS: ich stehe gerne als tester bereit ;)
 
Zuletzt bearbeitet:
Danke für die Tipps. Habe es dementsprechend mal umgeändert.
Code
Meine Seite zum testen

Bitte posten ob jetzt alles funktioniert.

@karuso: Teste bitte mal Konqueror und Linux Unterstützung.

//edit
Es sollte funktionieren. Das Script wurde freundlicherweiße von einem Tim aus #computerbase.linux getestet.
BTW: Ubuntu forever!

Mfg
KoЯn
 
Zuletzt bearbeitet:
Alles klar, dann werd ich das auch mal übernehmen. Danke
 
@ Quidoff

Hab nochmal eine Frage, wie hast du das mit dem Provider hinbekommen das da jetzt z.B. "Arcor oder 1&1" da steht !?

thx digiTALE
 
Das ist eine kurze Funktion, die ich nur ganz schnell mal geschrieben habe. Sie ist noch nicht vollständig, sollte aber die bekanntesten Provider unterstützen.

Wenn jemand noch weitere Provider und deren Host Endung weiß, dann kann er mir sie gerne schicken, damit ich sie in die Funktion einbauen kann.

Code

Einfach wieder wie folgt aufrufen:
PHP:
<?php echo provider(); ?>

P.S.: Den Teil mit localhost hab ich nur eingebaut, damit das Script beim Testen auf meinem lokalen Rechner keine Fehler verursacht. Den Teil kannst du aber ruhig drin lassen. Er verschlechtert das Script ja nich wirklich.
Viel Spaß damit.

Mfg
KoЯn
 
Zuletzt bearbeitet:
Zurück
Oben