Se OS
9 svar · 417 visningar · startad av andy-80
if (strstr($_SERVER["HTTP_USER_AGENT"],'Win')) {
$os='Win';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Mac')) {
$os='Mac';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Linux')) {
$os='Linux';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Unix')) {
$os='Unix';
} else {
$os='Other';
}
När jag kör den koden så får jag följande svar:
$os = Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0
Testdatorn har Win XP, och det går ju inte att utläsa särskilt effektivt att det är det. Finns det ingen annan mer exakt funktion/metod?
$_SERVER['http_user_agent'] är väl i första hand till för att ta fram browser, eller har jag fel?
$_SERVER['http_user_agent'] är väl i första hand till för att ta fram browser, eller har jag fel?
Vad säger denna rad ? Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0
Windows XP ÄR Windows NT 5.1 om du inte visste det :OO
<?
if (strstr($_SERVER["HTTP_USER_AGENT"],'Win')) {
$os='Win';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Mac')) {
$os='Mac';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Linux')) {
$os='Linux';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Unix')) {
$os='Unix';
} else {
$os='Other';
}
echo "Du använder ".$os;
?>
Det ser ut som den närmast beskriver att det är Windows NT 5.1, och inte XP som är använt.
Men kanske siffrorna utgör en annan betydelse?
E inte så haj på detta som sagt.
Ah, nu såg jag den raden åxå!
Nej, det visste jag inte...
Tackar och Bockar!
Kanske vet du också vilket som är det bästa sättet att nationsbestämma en besökare, dvs vilket land.
Har sett långa lösningar där man går på sista delen i adressen: se, dk, no osv men det känns rätt missvisande. Finns det något 99%-igt exakt sätt?
Du kan ju testa
if (strstr($_SERVER["HTTP_USER_AGENT"],'Windows NT 5.1')) {
$os='Windows XP';
} else if (strstr($_SERVER["HTTP_USER_AGENT"],'Windows 98')) {
$os='Windows 98';
för olika windoze .. har ingen aning på rak arm vad Win 98 lämnar .. be en kompis med 98 gå in på en sida och kolla vad USER AGENT ger
Angående nation så ger detta bara språkinställning för browsern .. för mera exakt måste det till nån IP koll tror jag
Ja, kanske är det IP numret man måste gå på, jag har faktiskt inte en aning.
Men informationen måste ju finnas att hämta någonstans då den garantert skickas vid anrop?
Kanske är något för en ny tråd dock?
Ja.. det finns ett färdigt script nånstans där alla IP längor finns i en databas som man kollar emot