Szerző Téma: Böngészõ (és operációs rendszer) meghatározása  (Megtekintve 5231 alkalommal)

0 Felhasználó és 1 vendég van a témában

Nem elérhető rajmund

  • Törzstag
  • **
  • Hozzászólások: 460
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #30 Dátum: 2010. július 25., 14:35:08 »
Javítva! Új fájl meg mellékelve, majd talán vmikor belerakom az internetszolgáltató felügyelőt.


Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #29 Dátum: 2010. július 25., 10:54:11 »
Van egy sanda gyanúm, hogy az eregikre gondolsz,
Többek között igen. És PHP4-es osztály volt. De az működésben nem befolyásol. 
Az új kód tökéletesen fut Opera kivételével, gőzöm sincs hogy miért :/
Mert az opera rögtön az operával kezdi a user agentet, és az stripos 0-t ad vissza rá. Az pedig logikailag hamis. !== false vizsgálat kéne legalább. Vagy stripos helyett stristr. ( vagy preg )
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Kazsa

  • Felhasználó
  • Hozzászólások: 83
    • CsirkeNevelde
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #28 Dátum: 2010. július 25., 01:49:46 »
Szép munka O0

Nem elérhető rajmund

  • Törzstag
  • **
  • Hozzászólások: 460
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #27 Dátum: 2010. július 25., 01:15:59 »
És ma már biztosan másképp is írná.

Van egy sanda gyanúm, hogy az eregikre gondolsz, kijavítottam őket, plusz beraktam a chrome-ot és mellé még pár gyakran használt böngészőt(még letesztelen őket), meg egy saját széleskörű ip és egyéb adatot lekérdező scriptet, remélem nem gond warner :D

Kód: PHP
  1.  
  2. <?php
  3. /* By Warner, kiegészítés by rajmund; http://phpstudio.hu
  4.  *
  5.  * Operációs rendszer- és böngészőfelismerő (verziószámmal) osztály.
  6.  *
  7.  * Felismert operációs rendszerek:
  8.  *              Microsoft Windows
  9.  *              MacIntosh
  10.  *              Linux
  11.  *              OS/2
  12.  *              BeOS
  13.  *              Ubuntu
  14.  *
  15.  * Felismert böngészők:
  16.  *              Amaya
  17.  *              Galeon
  18.  *              iCab
  19.  *              Internet Explorer (AOL verziók esetén Internet Explorer-nek ismeri fel, de a verziószám az AOL verziószám lesz az IE verziószáma helyett.)
  20.  *              Konqueror
  21.  *              Lynx
  22.  *              Mozilla
  23.  *              Netscape Navigator/Communicator
  24.  *              OmniWeb
  25.  *              Opera
  26.  *              Pocket Internet Explorer for handhelds
  27.  *              Safari
  28.  *              WebTV
  29.  *              Chrome
  30.  *              Seamonkey
  31.  *              Mosaic
  32.  *              Avant
  33.  *              Camino
  34.  *              Flock
  35.  *              Maxthon
  36.  * Egyéb adatok:
  37.  *              Ip cím és típusa
  38.  *              Host
  39.  *              Proxy használat
  40.  * Hiányosságok:
  41.  *              gecko böngésző
  42.  *              nem használt böngésző verziók
  43.  *              internet szolgáltató
  44.  */
  45. class browser
  46.         {
  47.     var $Name = "undefined";
  48.     var $Version = "undefined";
  49.     var $Platform = "undefined";
  50.     var $UserAgent = "Not reported";
  51.     var $AOL = false;
  52.  
  53.     function browser()
  54.                 {
  55.         $agent = $_SERVER['HTTP_USER_AGENT'];
  56.  
  57.         // Tulajadonságok inicializálása
  58.         $bd['platform'] = "undefined";
  59.         $bd['browser'] = "undefined";
  60.         $bd['version'] = "undefined";
  61.                 $ip['network'] = "undefined";
  62.                 $ip['host'] = "undefined";
  63.                 $ip['port'] = "undefined";
  64.                 $ip['dhost'] = "undefined";
  65.                 $ip['sub'] = "undefined";
  66.                 $ip['type'] = "undefined";
  67.                 $ip['proxy'] = "undefined";
  68.         $this->UserAgent = $agent;
  69.                
  70.         // Operáció rendszer felismerése
  71.                         if (stripos($agent, "win"))
  72.             $bd['platform'] = "Windows";
  73.         elseif (stripos($agent, "mac"))
  74.             $bd['platform'] = "MacIntosh";
  75.         elseif (stripos($agent, "linux"))
  76.             $bd['platform'] = "Linux";
  77.         elseif (stripos($agent, "OS/2"))
  78.             $bd['platform'] = "OS/2";
  79.         elseif (stripos($agent, "BeOS"))
  80.             $bd['platform'] = "BeOS";
  81.                 elseif (stripos($agent, "ubuntu"))
  82.             $bd['platform'] = "Ubuntu";
  83.  
  84.  
  85.                 // BÖNGÉSZÕ FELISMERÉSE
  86.         // Opera        
  87.         if (stripos($agent, "opera")){
  88.             $val = stristr($agent, "opera");
  89.             if (stripos($val, "/")){
  90.                 $val = explode("/",$val);
  91.                 $bd['browser'] = $val[0];
  92.                 $val = explode(" ",$val[1]);
  93.                 $bd['version'] = $val[0];
  94.             }else{
  95.                 $val = explode(" ",stristr($val,"opera"));
  96.                 $bd['browser'] = $val[0];
  97.                 $bd['version'] = $val[1];
  98.             }
  99.  
  100.         // WebTV
  101.         }elseif(stripos($agent, "webtv")){
  102.             $val = explode("/",stristr($agent,"webtv"));
  103.             $bd['browser'] = $val[0];
  104.             $bd['version'] = $val[1];
  105.        
  106.         // MS Internet Explorer version 1
  107.         }elseif(stripos($agent, "microsoft internet explorer")){
  108.             $bd['browser'] = "MSIE";
  109.             $bd['version'] = "1.0";
  110.             $var = stristr($agent, "/");
  111.             if (ereg("308|425|426|474|0b1", $var)){
  112.                 $bd['version'] = "1.5";
  113.             }
  114.  
  115.         // NetPositive
  116.         }elseif(stripos($agent, "NetPositive")){
  117.             $val = explode("/",stristr($agent,"NetPositive"));
  118.             $bd['platform'] = "BeOS";
  119.             $bd['browser'] = $val[0];
  120.             $bd['version'] = $val[1];
  121.  
  122.         // MS Internet Explorer
  123.         }elseif(stripos($agent, "msie") && !stripos($agent, "opera")){
  124.             $val = explode(" ",stristr($agent,"msie"));
  125.             $bd['browser'] = $val[0];
  126.             $bd['version'] = $val[1];
  127.        
  128.         // MS Pocket Internet Explorer
  129.         }elseif(stripos($agent, "mspie") || stripos($agent, 'pocket')){
  130.             $val = explode(" ",stristr($agent,"mspie"));
  131.             $bd['browser'] = "MSPIE";
  132.             $bd['platform'] = "WindowsCE";
  133.             if (stripos($agent, "mspie"))
  134.                 $bd['version'] = $val[1];
  135.             else {
  136.                 $val = explode("/",$agent);
  137.                 $bd['version'] = $val[1];
  138.             }
  139.            
  140.         // Galeon
  141.         }elseif(stripos($agent, "galeon")){
  142.             $val = explode(" ",stristr($agent,"galeon"));
  143.             $val = explode("/",$val[0]);
  144.             $bd['browser'] = $val[0];
  145.             $bd['version'] = $val[1];
  146.            
  147.         // Konqueror
  148.         }elseif(stripos($agent, "Konqueror")){
  149.             $val = explode(" ",stristr($agent,"Konqueror"));
  150.             $val = explode("/",$val[0]);
  151.             $bd['browser'] = $val[0];
  152.             $bd['version'] = $val[1];
  153.            
  154.         // iCab
  155.         }elseif(stripos($agent, "icab")){
  156.             $val = explode(" ",stristr($agent,"icab"));
  157.             $bd['browser'] = $val[0];
  158.             $bd['version'] = $val[1];
  159.  
  160.         // OmniWeb
  161.         }elseif(stripos($agent, "omniweb")){
  162.             $val = explode("/",stristr($agent,"omniweb"));
  163.             $bd['browser'] = $val[0];
  164.             $bd['version'] = $val[1];
  165.  
  166.         // Phoenix
  167.         }elseif(stripos($agent, "Phoenix")){
  168.             $bd['browser'] = "Phoenix";
  169.             $val = explode("/", stristr($agent,"Phoenix/"));
  170.             $bd['version'] = $val[1];
  171.        
  172.         // Firebird
  173.         }elseif(stripos($agent, "firebird")){
  174.             $bd['browser']="Firebird";
  175.             $val = stristr($agent, "Firebird");
  176.             $val = explode("/",$val);
  177.             $bd['version'] = $val[1];
  178.            
  179.         // Firefox
  180.         }elseif(stripos($agent, "Firefox")){
  181.             $bd['browser']="Firefox";
  182.             $val = stristr($agent, "Firefox");
  183.             $val = explode("/",$val);
  184.             $bd['version'] = $val[1];
  185.            
  186.       // Mozilla Alpha/Beta Versions
  187.         }elseif(stripos($agent, "mozilla") &&
  188.             stripos($agent, "rv:[0-9].[0-9][a-b]") && !stripos($agent, "netscape")){
  189.             $bd['browser'] = "Mozilla";
  190.             $val = explode(" ",stristr($agent,"rv:"));
  191.             stripos($agent, "rv:[0-9].[0-9][a-b]",$agent,$val);
  192.             $bd['version'] = str_replace("rv:","",$val[0]);
  193.            
  194.         // Mozilla Stable Versions
  195.         }elseif(stripos($agent, "mozilla") &&
  196.             stripos($agent, "rv:[0-9]\.[0-9]") && !stripos($agent, "netscape")){
  197.             $bd['browser'] = "Mozilla";
  198.             $val = explode(" ",stristr($agent,"rv:"));
  199.             stripos($agent, "rv:[0-9]\.[0-9]\.[0-9]",$agent,$val);
  200.             $bd['version'] = str_replace("rv:","",$val[0]);
  201.        
  202.         // Lynx & Amaya
  203.         }elseif(stripos($agent, "libwww")){
  204.             if (stripos($agent, "amaya")){
  205.                 $val = explode("/",stristr($agent,"amaya"));
  206.                 $bd['browser'] = "Amaya";
  207.                 $val = explode(" ", $val[1]);
  208.                 $bd['version'] = $val[0];
  209.             } else {
  210.                 $val = explode("/",$agent);
  211.                 $bd['browser'] = "Lynx";
  212.                 $bd['version'] = $val[1];
  213.             }
  214.         }elseif(stripos($agent, "chrome")){
  215.                 $val = explode("/",stristr($agent,"chrome"));
  216.         $bd['browser'] = "Chrome";
  217.         $bd['version'] = substr($val[1],0,3);
  218.                
  219.                 //noname böngészők
  220.                 }elseif(stripos($agent, "seamonkey")){
  221.         $bd['browser'] = "Seamonkey";
  222.         $bd['version'] = "undefined";
  223.         }elseif(stripos($agent, "mosaic")){
  224.         $bd['browser'] = "Mosaic";
  225.         $bd['version'] = "undefined";
  226.         }elseif(stripos($agent, "avant")){
  227.         $bd['browser'] = "Avant";
  228.         $bd['version'] = "undefined";
  229.         }elseif(stripos($agent, "camino")){
  230.         $bd['browser'] = "Camino";
  231.         $bd['version'] = "undefined";
  232.         }elseif(stripos($agent, "flock")){
  233.         $bd['browser'] = "Flock";
  234.         $bd['version'] = "undefined";
  235.                 }elseif(stripos($agent, "maxthon")){
  236.         $bd['browser'] = "Maxthon";
  237.         $bd['version'] = "undefined";
  238.         // Safari
  239.         }elseif(stripos($agent, "safari")){
  240.                 $val = explode("/",stristr($agent,"safari"));
  241.             $bd['browser'] = "Safari";
  242.             $bd['version'] = substr($val[1],0,3);
  243.  
  244.         // Netscape
  245.         }elseif(stripos($agent, "netscape")){
  246.             $val = explode(" ",stristr($agent,"netscape"));
  247.             $val = explode("/",$val[0]);
  248.             $bd['browser'] = $val[0];
  249.             $bd['version'] = $val[1];
  250.         }elseif(stripos($agent, "mozilla") && !stripos($agent, "rv:[0-9]\.[0-9]\.[0-9]")){
  251.             $val = explode(" ",stristr($agent,"mozilla"));
  252.             $val = explode("/",$val[0]);
  253.             $bd['browser'] = "Netscape";
  254.             $bd['version'] = $val[1];
  255.         }
  256.         // Tárgyhoz nem tartozó szemét eltakarítása a névből
  257.         $bd['browser'] = preg_replace("[^a-z,A-Z]", "", $bd['browser']);
  258.         // Tárgyhoz nem tartozó szemét eltakarítása a verziószámból      
  259.         $bd['version'] = preg_replace("[^0-9,.,a-z,A-Z]", "", $bd['version']);
  260.        
  261.         // AOL ellenőrzése
  262.         if (stripos($agent, "AOL")){
  263.             $var = stristr($agent, "AOL");
  264.             $var = explode(" ", $var);
  265.             $bd['aol'] = preg_replace("[^0-9,.,a-z,A-Z]", "", $var[1]);
  266.         }
  267.                
  268.                 //Proxy visszafejtése
  269.                 if (!empty($_SERVER['HTTP_CLIENT_IP'])){
  270.                         $ip['proxy'] = "undentified";
  271.                         $myip=$_SERVER['HTTP_CLIENT_IP'];
  272.                 }elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  273.                         $ip['proxy'] = $_SERVER['REMOTE_ADDR'];
  274.                         $myip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  275.                 }else{
  276.                         $ip['proxy'] = "undentified";
  277.                         $myip=$_SERVER['REMOTE_ADDR'];
  278.                 }
  279.                 //IP cím definiálása
  280.         $ip = explode(".", $myip);
  281.                 if (substr(decbin($ip[0]), 0, 1) == 0){
  282.                         $ip['type'] = "A - large";
  283.                         $ip['network'] = $ip[0];
  284.                         $ip['host'] = $ip[1].".".$ip[2].".".$ip[3];
  285.                         $ip['sub'] = 8;
  286.                 }else if (substr(decbin($ip[0]), 0, 2) == 10){
  287.                         $ip['type'] = "B - medium";
  288.                         $ip['network'] = $ip[0].".".$ip[1];
  289.                         $ip['host'] =  $ip[2].".".$ip[3];
  290.                         $ip['sub'] = 16;
  291.                 }else if (substr(decbin($ip[0]), 0, 3) == 110){
  292.                         $ip['type'] = "C - small";
  293.                         $ip['network'] = $ip[0].".".$ip[1].".".$ip[2];
  294.                         $ip['host'] =  $ip[3];
  295.                         $ip['sub'] = 24;
  296.                 }else if (substr(decbin($ip[0]), 0, 4) == 1110){
  297.                         $ip['type'] = "D - multicasting";
  298.                         $ip['network'] = $ip[0].".".$ip[1].".".$ip[2].".".$ip[3];
  299.                         $ip['host'] =  "undefined";
  300.                         $ip['sub'] = 32;
  301.                 }else if (substr(decbin($ip[0]), 0, 5) == 1111){
  302.                         $ip['type'] = "E - experimental";
  303.                         $ip['network'] = "undefined";
  304.                         $ip['host'] =  "undefined";
  305.                         $ip['sub'] = "undefined";
  306.                 }
  307.        
  308.         // Tulajdonságok beállítása
  309.         $this->Name = $bd['browser'];
  310.         $this->Version = $bd['version'];
  311.         $this->Platform = $bd['platform'];
  312.         $this->AOL = $bd['aol'];
  313.                 $this->Type = $ip['type'];
  314.                 $this->Network = $ip['network'];
  315.                 $this->Host = $ip['host'];
  316.                 $this->Sub = $ip['sub'];
  317.                 $this->Binary = decbin($ip[0]).".".decbin($ip[1]).".".decbin($ip[2]).".".decbin($ip[3]);
  318.                 $this->Port = $_SERVER['REMOTE_PORT'];
  319.                 $this->Provider = gethostbyaddr($myip);
  320.                 $this->Ip = $myip;
  321.         }
  322.         }
  323. $browser = new browser();
  324. print "Böngésző neve: ".$browser->Name."<br />";
  325. print "Böngésző verziója: ".$browser->Version."<br />";
  326. print "Oprendszer: ".$browser->Platform."<br /><br />";
  327. print "Ip cím: ".$browser->Ip."<br />";
  328. print "Ip Típusa: ".$browser->Type."<br />";
  329. print "Ip Hálózat: ".$browser->Network."<br />";
  330. print "Ip Host: ".$browser->Host."<br />";
  331. print "Ip Sub: ".$browser->Sub."<br />";
  332. print "Igazi IP: ".$browser->Binary."<br />";
  333. print "Port: ".$browser->Port."<br />";
  334. print "Proxy: ".$browser->Proxy."<br />";
  335. print "Host: ".$browser->Provider."<br />";
  336. ?>
  337.  
  338.  


Az új kód tökéletesen fut Opera kivételével, gőzöm sincs hogy miért :/
« Utoljára szerkesztve: 2010. július 25., 01:41:40 írta rajmund »

Nem elérhető Kazsa

  • Felhasználó
  • Hozzászólások: 83
    • CsirkeNevelde
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #26 Dátum: 2010. július 16., 17:53:06 »
Ahha...kösz a választ...Úgy látszik ,hogy én nem igazán tudok semmit se...előbb utána nézek,ez eltart egy darabig,majd írok ide,mert bizt fogok  xD

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #25 Dátum: 2010. július 15., 23:00:30 »
Ez annyira pszeudo kód, hogy ezerféle megoldást takarhat. Igen, IF kell de valószínűleg változót fogsz összehasonlítani stringgel és nem változót logikai értékkel. Az átirányítókód meg igen, oda kell az if-be. De szerintem konkrétabban is leírhattad volna, hogy gondolod :) Lehet jól, de lehet nem.
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Kazsa

  • Felhasználó
  • Hozzászólások: 83
    • CsirkeNevelde
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #24 Dátum: 2010. július 15., 22:42:37 »
Köszönöm a választ!
Tehát így?Ha nem jó kérlek javíts ki.
Kód: PHP
  1. if ( msie ==true) {
  2. átíránnyítókod
  3. }
  4.  

Nem elérhető Semmu

  • V.I.P. tag
  • Teljes tag
  • *****
  • Hozzászólások: 2.576
  • Akinek semmi sem tetszik :D
    • [készülõben]
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #23 Dátum: 2010. július 15., 16:45:38 »
ha teljesül a feltétel -> header().



Nem elérhető Kazsa

  • Felhasználó
  • Hozzászólások: 83
    • CsirkeNevelde
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #22 Dátum: 2010. július 15., 16:44:07 »
Köszönöm!Hogy így felé raktam,már megy.
Még annyi kérdés,hogyha nem firefox vagy chrome böngészővel nézzük a weblapot,akkor egy előre beállított oldalt nyisson meg,azt hogy lehetne megcsinálni?
-nem kérek konkrét kódot persze,de nyilván elfogadnám azt is xd-
Választ előre is köszönöm!

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #21 Dátum: 2010. július 15., 15:29:04 »
Nem volt még akkor google chrome, mikor Warner ezt megírta. És ma már biztosan másképp is írná. De sebtapasznak beteheted a következő kód fölé:
Kód: PHP
  1.         // Safari
  2.         }elseif(eregi("safari", $agent)){
  3.             $bd['browser'] = "Safari";
  4.             $bd['version'] = "";
Ezt:
Kód: PHP
  1.         // Chrome
  2.         }elseif(eregi("chrome", $agent)){
  3.             $bd['browser'] = "Chrome";
  4.             $bd['version'] = "";  
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Kazsa

  • Felhasználó
  • Hozzászólások: 83
    • CsirkeNevelde
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #20 Dátum: 2010. július 15., 14:11:26 »
Hogy működne Google Chromeban? Mert ott safarit ír ki. :S Próbáltam szerkesztgetni,de továbbra is az maradt. :blush:

Nem elérhető Viz

  • Tag
  • *
  • Hozzászólások: 177
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #19 Dátum: 2008. november 08., 22:52:08 »
Köszönöm a válaszokat!
Így már működik, elfelejtettem! :blush:

Nem elérhető <madbence />

  • Teljes tag
  • ***
  • Hozzászólások: 1.631
  • Twitterista :)
    • Blogom
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #18 Dátum: 2008. november 08., 22:47:18 »
$browser = new browser();Példányosítani köll
mi chuck norris email címe? gmail@chucknorris.com
Blog: napszemuvegbe.tumblr.com
Twitter: twitter.com/madbence

Nem elérhető Warner

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 6.438
    • CodeNet
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #17 Dátum: 2008. november 08., 22:46:55 »
Egyszerűen csak nem példányosítottad Viz az osztályt a $browser objektumba. Pedig csak le kellett volna másolnod Rimelek példakódját...

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Böngészõ (és operációs rendszer) meghatározása
« Válasz #16 Dátum: 2008. november 08., 22:34:11 »
Írt valami hibát? vagy csak nem működött valami? Ez csak egy értékadás. Elrontani szinte lehetetlen. Max elirtál egy betűt a változóban vagy hasonló.

Illik elolvasni még a topic többi hozzászólását, ha csak 1 oldal van öszesen.
De itt ezt a hszt nézd:
http://phpstudio.hu/forum/index.php/topic,1376.msg41225.html#msg41225
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.