Devam Et
Logo
PHP

PHP İle Tarayıcı ve İşletim Sistemi Bilgisini Alma

Son zamanlarda bazı web sitelerinde, özellikle bir dosya indireceğiniz web sitelerinde sizin tarayıcı ve işletim sistemi bilginizi alarak ona göre indirme linki sunmaktadır. Peki bunu nasıl yapıyorlar ? 

Örneğin şimdi WhatsApp'ın indirme linkine tıklayarak (ki buradan ulaşabilirsiniz) şunu görebilirsiniz; WhatsApp sizin işletim sistemi bilginizi öğrenerek ona göre indirme linkini sizlere sunuyor. Aynı şeyi güzel ve etkili bir editör olan Atom Editör'ün de internet sitesinin ana sayfasında sizin işletim sisteminize göre indirme linki sunuluyor. (Buraya tıklayarak görebilirsiniz.)

Peki iyi hoş da bunlar bu işlemi nasıl yapıyorlar. Hadi gelin bakalım.

$_SERVER['HTTP_USER_AGENT'] 

PHP'de $_SERVER['HTTP_USER_AGENT'] ile sitenize gelen ziyaretçinin, sitenizi ziyaret ettiği bilgisayarın tarayıcı ve işletim sistemi bilgisini alabilirsiniz. Hemen bir örnek ile açıklayalım.

Ben sunucumda bir php dosya oluşturup içerisinde sadece aşağıdaki kodları yazdım;

echo $_SERVER['HTTP_USER_AGENT'];

Ve bunun ekran çıktısı aşağıdaki gibi oldu;

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36

Burada size (belkide işinize yaramayacak olan) bir çok bilgi veriliyor. Bize lazım olanlar ise şunlar;

En başta parantez içerisinde yazan işletim sistemi adı: Windows NT 10.0; Win64; x64. Bu demek oluyor ki bizim işletim sistemimiz Windows 10 64 Bit.

Daha sonra ise ilk yazan tarayıcı ismi bizim kullandığımız tarayıcıyı veriyor: Chrome/73.0.3683.75. Bu da demek oluyor ki tarayıcımız Chrome ve versiyonu 73.0.3683.75.

Burada yazan verileri parçalayarak anlamlı hale getirmek için internette hazırlanmış bazı fonksiyonlar bulunuyor. Mesela aldığınız ekran çıktısında işletim sistemine Windows NT 6.2 yazıyorsa bu Windows 8 anlamına geliyor. Bu verileri karşılaştırabileceğiniz dizileri sizlerle paylaşıyorum.

İşletim sistemleri isimleri ve karşılıkları;

array(
      '/windows nt 10/i'      =>  'Windows 10',
      '/windows nt 6.3/i'     =>  'Windows 8.1',
      '/windows nt 6.2/i'     =>  'Windows 8',
      '/windows nt 6.1/i'     =>  'Windows 7',
      '/windows nt 6.0/i'     =>  'Windows Vista',
      '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
      '/windows nt 5.1/i'     =>  'Windows XP',
      '/windows xp/i'         =>  'Windows XP',
      '/windows nt 5.0/i'     =>  'Windows 2000',
      '/windows me/i'         =>  'Windows ME',
      '/win98/i'              =>  'Windows 98',
      '/win95/i'              =>  'Windows 95',
      '/win16/i'              =>  'Windows 3.11',
      '/macintosh|mac os x/i' =>  'Mac OS X',
      '/mac_powerpc/i'        =>  'Mac OS 9',
      '/linux/i'              =>  'Linux',
      '/ubuntu/i'             =>  'Ubuntu',
      '/iphone/i'             =>  'iPhone',
      '/ipod/i'               =>  'iPod',
      '/ipad/i'               =>  'iPad',
      '/android/i'            =>  'Android',
      '/blackberry/i'         =>  'BlackBerry',
      '/webos/i'              =>  'Mobile'
    );

Tarayıcı İsimleri ve Karşılıkları;

array(
  '/msie/i'      => 'Internet Explorer',
  '/firefox/i'   => 'Firefox',
  '/safari/i'    => 'Safari',
  '/chrome/i'    => 'Chrome',
  '/edge/i'      => 'Edge',
  '/opera/i'     => 'Opera',
  '/netscape/i'  => 'Netscape',
  '/maxthon/i'   => 'Maxthon',
  '/konqueror/i' => 'Konqueror',
  '/mobile/i'    => 'Handheld Browser',
  '/Trident/i'    => 'Internet Explorer'
);

İşletim sistemi bit verisi ve karşılıkları;

array(
  '/WOW64/i'      =>  '64 Bit',
  '/x64/i'     =>  '64 Bit',
  '/x86/i'     =>  '32 Bit',
  '/x86_64/i'     =>  '32 Bit',
);

Bu dizilere aldığınız veriyi vererek gerekli bilgileri elde edebilirsiniz.

Şimdi size bunları anlamlı bir şekilde kullanabileceğiniz kodların tamamını paylaşıyorum;

  '64 Bit',
                          '/x64/i'     =>  '64 Bit',
                          '/x86/i'     =>  '32 Bit',
                          '/x86_64/i'     =>  '32 Bit',
                    );

    foreach ($os_array as $regex => $value)
        if (preg_match($regex, $user_agent))
            $os_platform = $value;

    return $os_platform;
}

function getOS() {

    global $user_agent;

    $os_platform  = "Unknown OS Platform";

    $os_array     = array(
                          '/windows nt 10/i'      =>  'Windows 10',
                          '/windows nt 6.3/i'     =>  'Windows 8.1',
                          '/windows nt 6.2/i'     =>  'Windows 8',
                          '/windows nt 6.1/i'     =>  'Windows 7',
                          '/windows nt 6.0/i'     =>  'Windows Vista',
                          '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
                          '/windows nt 5.1/i'     =>  'Windows XP',
                          '/windows xp/i'         =>  'Windows XP',
                          '/windows nt 5.0/i'     =>  'Windows 2000',
                          '/windows me/i'         =>  'Windows ME',
                          '/win98/i'              =>  'Windows 98',
                          '/win95/i'              =>  'Windows 95',
                          '/win16/i'              =>  'Windows 3.11',
                          '/macintosh|mac os x/i' =>  'Mac OS X',
                          '/mac_powerpc/i'        =>  'Mac OS 9',
                          '/linux/i'              =>  'Linux',
                          '/ubuntu/i'             =>  'Ubuntu',
                          '/iphone/i'             =>  'iPhone',
                          '/ipod/i'               =>  'iPod',
                          '/ipad/i'               =>  'iPad',
                          '/android/i'            =>  'Android',
                          '/blackberry/i'         =>  'BlackBerry',
                          '/webos/i'              =>  'Mobile'
                    );

    foreach ($os_array as $regex => $value)
        if (preg_match($regex, $user_agent))
            $os_platform = $value;

    return $os_platform;
}

function getBrowser() {

    global $user_agent;

    $browser        = "Unknown Browser";

    $browser_array = array(
                            '/msie/i'      => 'Internet Explorer',
                            '/firefox/i'   => 'Firefox',
                            '/safari/i'    => 'Safari',
                            '/chrome/i'    => 'Chrome',
                            '/edge/i'      => 'Edge',
                            '/opera/i'     => 'Opera',
                            '/netscape/i'  => 'Netscape',
                            '/maxthon/i'   => 'Maxthon',
                            '/konqueror/i' => 'Konqueror',
                            '/mobile/i'    => 'Handheld Browser',
                            '/Trident/i'    => 'Internet Explorer'
                     );

    foreach ($browser_array as $regex => $value)
        if (preg_match($regex, $user_agent))
            $browser = $value;

    return $browser;
}


$user_os        = getOS();
$user_browser   = getBrowser();
$user_os_bit   = getOS_Bit();

$device_details = "Tarayıcınız: ".$user_browser."
İşletim Sisteminiz: ".$user_os." (".$user_os_bit.")";

print_r($device_details);

echo "

";
echo $_SERVER['HTTP_USER_AGENT'];
?>

Ve bu kodları çalıştırdığınız zaman elde edeceğiniz ekran görüntüsü;

Kodların indirilebilir haline Lab Aktüel üzerinden erişebilirsiniz arkadaşlar. Lab Aktüel linki için tıklayınız.

 

Author

Muhammed Yusuf TAŞKESENLİGİL

Hakkında: Hakkında: 2015 Haziran ayında KTÜ Bilgisayar Mühendisliği bölümünden mezun oldum. Yaklaşık 4 yıldır web teknolojileri üzerinde çalışıyorum. HTML, CSS, JavaScript ve PHP alanlarında proje geliştiriyorum. Teknolojiyi seven ve hayatının her alanında kullanan biriyim.

PHP ile Bulunduğunuz Sayfanın URL'sini Alma Önceki Yazı
htaccess İle Mobil Kullanıcıları Mobil Sürüme Yönlendirme Sonraki Yazı

0 Yorum

    Henüz hiç yorum eklenmemiş!

Bir Yorumda Sen Bırak