webForumDet fria alternativet

Se OS

9 svar · 417 visningar · startad av andy-80

andy-80Medlem sedan jan. 200537 inlägg
#1

Hej på er,

Har kikat runt här och på php.net utan framgång.
Det jag vill veta är funktionen/metoden för att plocka en besökares OS, under förutsättning att Servern tillåter det naturligtvis.
Antagligen finns det väl en slags:
$_SERVER[FIND_OS]... eller något?

Tack på förhand

FuelMedlem sedan okt. 20001 325 inlägg
#2
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';
}
andy-80Medlem sedan jan. 200537 inlägg
#3

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?

FuelMedlem sedan okt. 20001 325 inlägg
#4

$_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;
?>
andy-80Medlem sedan jan. 200537 inlägg
#5

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.

andy-80Medlem sedan jan. 200537 inlägg
#6

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?

FuelMedlem sedan okt. 20001 325 inlägg
#7

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

andy-80Medlem sedan jan. 200537 inlägg
#8

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?

FuelMedlem sedan okt. 20001 325 inlägg
#9

Ja.. det finns ett färdigt script nånstans där alla IP längor finns i en databas som man kollar emot

andy-80Medlem sedan jan. 200537 inlägg
#10

Ok, då får jag hitta den på nå´t sätt

Tusen tack för din hjälp!

Genererad på 391 ms · cache AV · v20260730165559-full.f96bc7eb