[ Goran Rakić @ 19.01.2002. 11:56 ] @
Jako mi se dopalo prikazivanje ip mask i os-a pored imena onoga ko je postovao. Kako da ocitam ova dva podatka ALI U OVOM OBLIKU. Zamolio bih za ceo kod kako da rastavim string. plz
[ Mihailo @ 19.01.2002. 13:24 ] @
Prvo koristiš fju $HTTP_USER_AGENT da dobiješ "user agent string" koji daje verziju browsera i sistema (uglavnom): "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)". Onda sa fjom eregi ili ereg (ista stvar samo case sensitive) tražiš string (primer): "NT 5.0". Ako ti vrati "true" OS je Win 2000.

Primer za W2K:

$uastring=$HTTP_USER_AGENT;
if (ereg("NT 5",$uastring)) $os="Windows 2000";
if (ereg("MSIE",$uastring)) $browser="Internet explorer";

Za dobijanje IP odnosno hostname:

$host=gethostbyaddr($REMOTE_ADDR);

gde je remote_addr adresa klijenta koju prevodi fja gethostbyaddr

[ Goran Rakić @ 19.01.2002. 19:23 ] @
hvala, e sada kako da znam sta se dobija sa razlicitim os-ovima (i browserima ali to nema veze)...
Gojko nemoj tako ljubomorno da cuvas kod...
[ Predrag Damnjanovic @ 19.01.2002. 21:15 ] @
Citat:
Go! X:
hvala, e sada kako da znam sta se dobija sa razlicitim os-ovima (i browserima ali to nema veze)...
Gojko nemoj tako ljubomorno da cuvas kod...

Taj kod sam mu ja dao, ja sam ga napisao za Zastitu:

$agent=" ".strtolower($HTTP_USER_AGENT);
if (strpos($agent, "konqueror")!=false) $os="unix";
if (strpos($agent, "lynx")!=false) $os="unix";
if (strpos($agent, "w3m")!=false) $os="unix";
if (strpos($agent, "unix")!=false) $os="unix";
if (strpos($agent, "win")!=false) $os="windows";
if (strpos($agent, "microsoft")!=false) $os="windows";
if (strpos($agent, "linux")!=false) $os="unix";
if (strpos($agent, "x11")!=false) $os="unix";
if (strpos($agent, "sunos")!=false) $os="unix";
if (strpos($agent, "bsd")!=false) $os="unix-bsd";
if (strpos($agent, "os/2")!=false) $os="os2";
if (strpos($agent, "qnx")!=false) $os="unix-qnx";
if (strpos($agent, "mac")!=false) $os="macintosh";
if (strpos($agent, "beos")!=false) $os="beos";
[ Goran Rakić @ 20.01.2002. 16:45 ] @
hvala, ali ...
opet ja sa ali, ovde na forumu pise recimo Windows XP ili Windows 2000, a ovo je primer samo za Windows ili unix... Za win2000 (i receno mi je, a i ja sam znao posto ga imam) da je NT5, ali sta je sa, recimo XP, kako se on indetifikuje
ima li negde link sa popisom?
[ leka @ 20.01.2002. 19:48 ] @
Za mene Linux nikada neće biti UNIX i želim da se za Linux napiše da je Linux, a ne UNIX! - Neko će misliti da se zezam - veoma sam ozbiljan!
[ Zoran Rašković @ 20.01.2002. 20:08 ] @
Citat:
leka:
Za mene Linux nikada neće biti UNIX i želim da se za Linux napiše da je Linux, a ne UNIX! - Neko će misliti da se zezam - veoma sam ozbiljan!


word!
[ FlatLine @ 22.01.2002. 14:31 ] @
Code:
<?php

/* Simple OS Detection script */

$OS = $HTTP_USER_AGENT;
$OSList = Array (

    /* Windows */
    "Win|Windows",
    "Win16|Windows",
    "Win95|Windows 95",
    "Win98|Windows 98",
    "Win32|Windows",
    "WinNT|Windows NT",
    "Windows 3.1|Windows 3.1",
    "Windows 95|Windows 95",
    "Windows CE|Windows CE",
    "Windows 98|Windows 98",
    "Windows NT|Windows NT",
    "Windows NT 5.0|Windows 2000",
    "Windows NT 5.1|Windows XP",

    /* Macintosh */
    "Mac_68000|MacOS m68K",
    "Mac_68K|MacOS m68K",
    "Mac_PowerPC|MacOS PPC",
    "Mac_PPC|MacOS PPC",
    "Macintosh|MacOS",

    /* Unices */
    "X11|UNIX",
    "BSD|BSD",
    "SunOS|SunOS",
    "IRIX|IRIX",
    "HP-UX|HP-UX",
    "AIX|AIX",
    "QNX|QNX",
    "SCO_SV|SCO UNIX",
    "FreeBSD|FreeBSD",
    "NetBSD|NetBSD",
        
    /* Linux */
    "Linux|Linux",
    "Debian|Debian GNU/Linux",
    
    /* Other */
    "BeOS|BeOS",
    "OS/2|OS/2",
    "AmigaOS|AmigaOS",

);

foreach ($OSList as $OSNow) {
    $OSNow = explode ("|", $OSNow);
    if (eregi ($OSNow[0], $OS)) {
        $EndOS = $OSNow[1];
        $Check = "No";
    } elseif ($Check != "No") {
        $EndOS = "Unknown";
    }
}

print "$EndOS";
?>
[ Goran Rakić @ 22.01.2002. 14:34 ] @
hvala!!!!!!
[ Goran Rakić @ 26.01.2002. 12:54 ] @
prvo da se jos jednom zahvalim.
Drugo sta je ovo:

Mozilla/4.79 (Macintosh; U; PPC)
Mozilla/4.0 compatible ZyBorg/1.0 ([email protected]; http://www.WISEnutbot.com)
Mozilla/4.0 (Unix)
Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.01 [en]
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MSN 6.1; MSNbMSFT; MSNmen-us; MSNc00) - mozda MSN Explorer?
Mozilla/2.0 (compatible; MS FrontPage 5.0)
Mozilla/2.0 (compatible; T-H-U-N-D-E-R-S-T-O-N-E)

a evo i koda koji koristim:

//os
//kompjuter je zapis u mySQL bazi podataka
$kompjuter=$post['kompjuter'];

//Windows familija
if (eregi("Win",$kompjuter)) $os="Windows";
if (eregi("Win16",$kompjuter)) $os="Windows";
if (eregi("Win32",$kompjuter)) $os="Windows";
if (eregi("Win3.1",$kompjuter)) $os="Windows 3.1";
if (eregi("Win95",$kompjuter)) $os="Windows 95";
if (eregi("Win98",$kompjuter)) $os="Windows 98";
if (eregi("WinNT",$kompjuter)) $os="Windows NT";
if (eregi("Windows 95",$kompjuter)) $os="Windows 95";
if (eregi("Windows CE",$kompjuter)) $os="Windows CE";
if (eregi("Windows 98",$kompjuter)) $os="Windows 98";
if (eregi("Windows NT",$kompjuter)) $os="Windows NT";
if (eregi("NT 5.0",$kompjuter)) $os="Windows 2000";
if (eregi("NT 5.1",$kompjuter)) $os="Windows XP";
if (eregi("Windows 2000",$kompjuter)) $os="Windows 2000";
if (eregi("Windows XP",$kompjuter)) $os="Windows XP";
if (eregi("Win9x",$kompjuter)) $os="Windows 9x";
//mekintoš familija
if (eregi("Mac_68000",$kompjuter)) $os="MacOS m68K";
if (eregi("Mac_68K",$kompjuter)) $os="MacOS m68K";
if (eregi("Mac_PowerPC",$kompjuter)) $os="MacOS PowerPC";
if (eregi("Mac_PPC",$kompjuter)) $os="MacOS PowerPC";
if (eregi("Macintosh",$kompjuter)) $os="MacOS";
if (eregi("Mac_PowerPCh",$kompjuter)) $os="MacOS PowerPC";
//*nix
if (eregi("X11",$kompjuter)) $os="Unix";
if (eregi("BSD",$kompjuter)) $os="BSD";
if (eregi("SunOS",$kompjuter)) $os="SunOS";
if (eregi("IRIX",$kompjuter)) $os="IRIX";
if (eregi("HP-UX",$kompjuter)) $os="HP Unix";
if (eregi("AIX",$kompjuter)) $os="AIX";
if (eregi("QNX",$kompjuter)) $os="QNX";
if (eregi("SCO_SV",$kompjuter)) $os="SCO Unix";
if (eregi("FreeBSD",$kompjuter)) $os="FreeBSD";
if (eregi("NetBSD",$kompjuter)) $os="NetBSD";

//Neke Linux distribucije
if (eregi("Linux",$kompjuter)) $os="Linux";
if (eregi("Debian",$kompjuter)) $os="Debian Linux";

//Amiga, IBM i BeOS
if (eregi("BeOS",$kompjuter)) $os="BeOS";
if (eregi("OS/2",$kompjuter)) $os="OS/2";
if (eregi("AmigaOS",$kompjuter)) $os="AmigaOS";

//ukoliko ne moze da prepozna..
if(!$os){$os="nepoznato";}

//browser
if (eregi("MSIE",$kompjuter)) $browser="Internet Explorer";
if (eregi("Opera",$kompjuter)) $browser="Opera";
if (eregi("Konqueror",$kompjuter)) $browser="Konqueror";
if (eregi("Gecko",$kompjuter)) $browser="Gecko";
if (eregi("Netscape",$kompjuter)) $browser="Netscape";
if (eregi("AOL",$kompjuter)) $browser="AOL";

//ukoliko ne moze da prepozna..
if(!$browser){$browser="nepoznato";}
//ip
//provajder je zapis u mysql bazi podataka
$provajder=$post['provajder'];
if(!$provajder){$provajder="nepoznato"."<br>";}
else {
$provajder=strstr($provajder,".");
$provajder="*".$provajder."<br>";

ima li neko bolji predlog za ovo provajder?
[ Zoran Rašković @ 28.01.2002. 01:14 ] @
pa koristi onu skriptu sto je FlatLine poslao, veoma je jednostavno

[ RAGE @ 12.09.2004. 14:03 ] @
i di se to ubaci?
[ Zoran Rašković @ 18.03.2005. 13:28 ] @
Pa to se ubaci tamo gde ti treba :)

Najbolje je napraviti npr os.php i smestiti taj kod tamo.. posle kad god ti treba ta detekcija, includuješ os.php i echuješ rezultat tamo gde hoćeš.
[ Goran Rakić @ 18.03.2005. 17:24 ] @
Nadam se da je za godinu dana to skapirao. :)
[ Frane Marinković @ 18.03.2005. 21:22 ] @
zašto samo ne ubaci
<?php
include"os.php";
?>

jer sa:

<?php

include"os.php";

echo("$EndOS");

?>

će mu izbacivat 2xOS sistema:

Windows2000Windows2000
[ boccio @ 18.03.2005. 21:26 ] @
Gorane, ja sam kriv :) Koji me je djavo terao da TOPujem ovo...reko, non-stop neko pita za detekciju, pa kao koristice ljudima... I odma se nastavila diskusija :)
[ webmaster1 @ 18.03.2005. 22:42 ] @
pa da - topovati, ali zakljucati!!:))