Selasa, 27 Mei 2014

Mendapatkan Informasi Web Browser Agent dan Informasi IP Address Client Komputer Menggunakan Javascript dan PHP

Mendapatkan Informasi Web Browser Agent dan Informasi IP Address Client Komputer Menggunakan Javascript dan PHPCara Mendapatkan Informasi Web Browser Agent dan Informasi IP Address Client Komputer Menggunakan Javascript dan PHP ini penulis buat secara khusus karena ada teman yang menanyakan hal semacam ini. Sebelumnya penulis pernah bahas tema serupa pada Artikel sebelumnya Mendeteksi Web Browser Agent Apakah Mobile atau Desktop dan Mendapatkan Lokasi Pengunjung Web dengan Javascript dan Menampilkan pada Peta Google Map.

Sedangkan artikel ini dibuat untuk lebih melengkapi cara mencari informasi pengunjung web yaitu berupa apa browser yang digunakan, sistem operasi apa yang dipakai dan IP Address serta zona lokasi (Negara dan Kota) berdasarkan IP Address yang didapatkan itu.

Sebagai catatan, Javascript maupun PHP tidak mampu menggali hal lebih jauh misalnya mendapatkan history url web apa saja yang pernah diakses pengguna dan sebagainya karena Web Browser memang didesain untuk tidak dapat "mencuri" data pribadi dari pengguna web. Terlebih lagi hal tersebut memang secara "resmi" illegal (tidak sah secara hukum) karena mengganggu privasi orang lain secara pribadi.

Pertanyaannya apakah perusahaan besar seperti Google, Yahoo, Facebook, dan WhatsApp mendapatkan informasi dari perilaku pengguna web mereka? Tentu saja iya. Karena Google misalnya memiliki Search Engine dan Web Browser Chrome yang digunakan oleh kebanyakan orang untuk mencari halaman web yang sesuai dengan keinginan mereka, tentu daja Google memiliki data perilaku pengguna web tersebut. Contoh lain WhatsApp tentu saja memiliki data apa saja yang dibicarakan oleh pengguna WhatsApp, demikian pula Facebook Twitter, dsb. Tetapi tentu saja perusahaan itu tidak boleh secara langsung menggunakan informasi tersebut, walaupun tidak dapat dipungkiri informasi tersebut tentu mereka riset untuk digunakan dalam kepentingan tidak langsung seperti strategi marketing, iklan, penjualan produk dsb. Itulah mengapa Facebook mau membeli WhatsApp seharga lebih dari 190 Triliun Rupiah yang berarti menghargai setiap Pengguna WhatsApp seharga US$30-40 Dollar, untuk digunakan apanya? Untuk digunakan informasi yang dipercakapkan oleh seluruh pengguna WhatsApp, kira-kira itulah jawabannya. Dan informasi itulah yang paling berharga, silakan membayangkan bisa digunakan untuk apa saja informasi tersebut :D

Kembali ke masalah teknis tentang bagaimana cara mendapatkan informasi dari Browser Web Pengguna tentang Jenis Web Browser, IP Address dan Sistem Operasi. Penulis menemukan dua cara, yang pertama dengan Javascript dan yang kedua dengan PHP, kedua cara tersebut penulis rangkum menjadi kode program berikut ini, dalam hal ini penulis beri nama get-web-browser-agent-information-client-computer.php, sebagai berikut :

<!DOCTYPE html> <html> <body> <div id="demo"></div> <script> txt = "JAVASCRIPT<br/>Browser CodeName: " + navigator.appCodeName + ""; txt+= "<br/>Browser Name: " + navigator.appName + ""; txt+= "<br/>Browser Version: " + navigator.appVersion + ""; txt+= "<br/>Cookies Enabled: " + navigator.cookieEnabled + ""; txt+= "<br/>Browser Language: " + navigator.language + ""; txt+= "<br/>Browser Online: " + navigator.onLine + ""; txt+= "<br/>Platform: " + navigator.platform + ""; txt+= "<br/>User-agent header: " + navigator.userAgent + ""; txt+= "<br/>User-agent language: " + navigator.systemLanguage + ""; /* navigator.webkitPersistentStorage = [object DeprecatedStorageQuota] navigator.webkitTemporaryStorage = [object DeprecatedStorageQuota] navigator.geolocation = [object Geolocation] navigator.doNotTrack = null navigator.onLine = true navigator.product = Gecko navigator.appCodeName = Mozilla navigator.userAgent = Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 navigator.platform = Win32 navigator.appVersion = 5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 navigator.appName = Netscape navigator.maxTouchPoints = 0 navigator.vendorSub = navigator.vendor = Google Inc. navigator.productSub = 20030107 navigator.cookieEnabled = true navigator.mimeTypes = [object MimeTypeArray] navigator.plugins = [object PluginArray] navigator.language = en-US navigator.javaEnabled = function javaEnabled() { [native code] } navigator.getStorageUpdates = function getStorageUpdates() { [native code] } navigator.vibrate = function vibrate() { [native code] } navigator.webkitGetGamepads = function webkitGetGamepads() { [native code] } navigator.getGamepads = function getGamepads() { [native code] } navigator.webkitGetUserMedia = function webkitGetUserMedia() { [native code] } navigator.registerProtocolHandler = function registerProtocolHandler() { [native code] } http://useragentstring.com/ browser = UserAgent.Browser; // Chrome browserVer = UserAgent.BrowserVersion; // 5.0.342.9 os = UserAgent.OperatingSystem; // Windows NT osVer = UserAgent.OperatingSystemVersion; // 6.1 layoutEng = UserAgent.LayoutEngine; // WebKit layoutEngVer = UserAgent.LayoutEngineVersion; // 533.2 navigator["appCodeName"] navigator["appName"] navigator["appMinorVersion"] navigator["cpuClass"] navigator["platform"] navigator["plugins"] navigator["opsProfile"] navigator["userProfile"] navigator["systemLanguage"] navigator["userLanguage"] navigator["appVersion"] navigator["userAgent"] navigator["onLine"] navigator["cookieEnabled"] navigator["mimeTypes"] */ document.getElementById("demo").innerHTML = txt; </script> <?php echo "PHP<br/>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo "<br>"; $browser = get_browser(null, true); print_r($browser); ?> <?php echo "<br/>"; echo "<br/>"; echo "\$_SERVER['HTTP_CLIENT_IP'] = ".@$_SERVER['HTTP_CLIENT_IP']."<br/>"; echo "\$_SERVER['HTTP_X_FORWARDED_FOR'] = ".@$_SERVER['HTTP_X_FORWARDED_FOR']."<br/>"; echo "\$_SERVER['REMOTE_ADDR'] = ".@$_SERVER['REMOTE_ADDR']."<br/>"; function getLocationInfoByIp(){ $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = @$_SERVER['REMOTE_ADDR']; $result = array('country'=>'', 'city'=>''); if(filter_var($client, FILTER_VALIDATE_IP)){ $ip = $client; }elseif(filter_var($forward, FILTER_VALIDATE_IP)){ $ip = $forward; }else{ $ip = $remote; } $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip)); if($ip_data && $ip_data->geoplugin_countryName != null){ $result['country'] = $ip_data->geoplugin_countryCode; $result['city'] = $ip_data->geoplugin_city; } return $result; } $location = getLocationInfoByIp(); print_r($location); ?> </body> </html>

Untuk menjalankan aplikasi web tersebut harus dijalankan pada Web Server misalnya Apache, XAMPP, atau WAMP. Bisa juga anda upload ke Hosting Online. Penulis memakai XAMPP sehingga penulis menaruh file tersebut di direktori xampp/htdocs/get-web-browser-agent-information-client-computer.php. Dan dapat dipanggil di Browser dengan alamat URL http://localhost/get-web-browser-agent-information-client-computer.php, hasilnya :

Mendapatkan Informasi Web Browser Agent dan Informasi IP Address Client Komputer Menggunakan Javascript dan PHP

Sebagai catatan IP Address yang sebenarnya hanya bisa anda dapatkan jika script program tersebut anda upload di Hosting Online atau di komputer remote. Karena jika menggunakan komputer lokal (XAMPP dan Web Browser ada dalam komputer yang sama) maka tidak akan didapatkan IP Address. Kemudian IP Address tersebut dapat anda ubah menjadi Zona Lokasi (Propinsi dan Negara) dengan cara ditanyakan ke web http://www.geoplugin.net dan hasilnya berupa format JSON yang dapat diparsing oleh PHP. Jika ingin melihat contoh informasi apa saja yang dapat dihasilkan dari User Agent sebuar Browser Web anda dapat mencoba mengunjungi http://useragentstring.com/.

Project selengkapnya dapat anda download disini. Jika bingung cara download, silakan lihat caranya disini.

Semoga bermanfaat :)

Tidak ada komentar:

Posting Komentar