HTTP_USER_AGENT - Mozilla oder Netscape?
Mike
- browser
0 Daniel Thoma0 Armin G.
Guten Abend,
wenn ich in HTTP_USER_AGENT nach dem Muster
/rv:(\d.?)*) Gecko/\d{8,}\b/
..suche, kann ich dann davon ausgehen, dass das nur auf (_richtige_) Mozilla Browser passt, also jene, bei denen in der Titelleiste "Mozilla" steht.. ? Oder kann mir hier auch zufällig ein Netscape Browser ins Netz gehen?
Danke.
Hallo,
Oder kann mir hier auch zufällig ein Netscape Browser ins Netz gehen?
Netscape 6/7 basiert ja auf Mozilla. --> Er wird auch auf diese weise erkannt. Aber das willst Du vermutlich auch.
Netscape 4 und ältere verwenden keinen Gecko folglich steht der auch niemals in HTTP_USER_AGENT.
Natürlich kann es aber immer passieren, dass jemand da was anderes angegeben hat. Sollten aber nicht sehr viele Leute sein, die das tun.
Grüße
Daniel
Hallo,
Hallo
Netscape 6/7 basiert ja auf Mozilla. --> Er wird auch auf diese weise erkannt. Aber das willst Du vermutlich auch.
Nunja, ich wollte eigentlich nur Mozilla damit rausfischen und nicht Netscape. Nach diesem suche vorher mit
/Netscape/ bzw. /Mozilla4/5/
..das reicht wohl nicht, oder? ...
Heir mal mein 2-Minuten Code ;-) in PHP:
//------------------------------------------------------
function GetBrowser($s) {
$b = array(array("Konqueror","Konqueror"),
array("Lynx","Lynx"),
array("MSIE","MSIE"),
array("Opera","Opera"),
array("Netscape","Netscape"),
array("Mozilla 4/5","Netscape"),
array("rv:(\d.?)*) Gecko/\d{8,}\b","Mozilla")
);
if(strlen($s) < 4) { return -1; }
for($i=0;$i<count($b);$i++) {
if(preg_match("/".$b[$i][0]."/",$s)) {
$browser = $b[$i][1]; return $browser;
}
}
return -1;
}
//Aufruf mit z.B. :
echo GetBrowser(getenv("HTTP_USER_AGENT"));
//------------------------------------------------------
Ja ja, ich weiss es ist stümperhaft... aber soll ja nix dolles werden.
Natürlich kann es aber immer passieren, dass jemand da was anderes angegeben hat. Sollten aber nicht sehr viele Leute sein, die das tun.
Das ist nicht so schlimm, mir gehts ja nur um das Prinzip..
Grüße
ebenfalls
Daniel
Mike
Hi,
/Netscape/ bzw. /Mozilla4/5/
was heißt /5/ ?? Der "wahre" Mozilla hat auch Mozilla/5 im User-Agent!
function GetBrowser($s) {
$b = array(array("Konqueror","Konqueror"),
array("Lynx","Lynx"),
array("MSIE","MSIE"),
array("Opera","Opera"),
Opera sollte VOR MSIE stehen, da Opera sich als MSIE ausgeben kann, und folglich MSIE in seinem UA-String hat. "Opera" ist aber immer im
UA-String, egal wie er sich ausgibt!
array("Netscape","Netscape"),
array("Mozilla 4/5","Netscape"),
was soll die 5 ? Und oben stand noch ein / am ende: /5/
array("rv:(\d.?)*) Gecko/\d{8,}\b","Mozilla")
);
Netscape 4 würde ich ganz am schluss schreiben! also die letzten beiden Zeilen tauschen. Ist vielleicht zuverlässigerer.
Aber ist gibt ja auch noch andere Gecko browser als Netscape und Mozilla! z.B. Phoenix oder K-Meleon, oder Chimera/Camino, Galeon...
Diese kämen dann alle unter "Mozilla" bei deinem Skript!
Gruß
Christian
Tach auch,
Gecko
Oder kann mir hier auch zufällig ein Netscape Browser ins Netz gehen?
Und eventuell Phoenix, Chimera (oder wie immer die Version fuer Apple noch hiess) und diverse andere Browser die auf Gecko basieren.
Gecko ist nur die "Rendering Engine", darauf koennen massenhaft Browser basieren. Und ob und was da immer User Agent string auftaucht weiss ich nicht.
Gruss,
Armin