Advertisement
Guest User

PHP Get User Browser, IP, Browser, Search keyword

a guest
Apr 2nd, 2017
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.19 KB | None | 0 0
  1. <?php
  2.  
  3. // RESULTS
  4.  
  5. // {
  6. // Name: "DESKTOP-OD5QHSG",
  7. // Browser: "Google Chrome",
  8. // BrowserVer: "56.0.2924.87",
  9. // OpSystem: "windows",
  10. // BrowserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
  11. // BrowserLang: "tr",
  12. // IP: "::1",
  13. // Type: "search",
  14. // Domain: "google.com.tr",
  15. // Keyword: "sunu aradim"
  16. // }
  17.  
  18.  
  19. function getBrowser()
  20. {
  21.     $u_agent = $_SERVER['HTTP_USER_AGENT'];
  22.     $bname = 'Unknown';
  23.     $platform = 'Unknown';
  24.     $version= "";
  25.  
  26.     //First get the platform?
  27.     if (preg_match('/linux/i', $u_agent)) {
  28.         $platform = 'linux';
  29.     }
  30.     elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
  31.         $platform = 'mac';
  32.     }
  33.     elseif (preg_match('/windows|win32/i', $u_agent)) {
  34.         $platform = 'windows';
  35.     }
  36.    
  37.     // Next get the name of the useragent yes seperately and for good reason
  38.     if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
  39.     {
  40.         $bname = 'Internet Explorer';
  41.         $ub = "MSIE";
  42.     }
  43.     elseif(preg_match('/Firefox/i',$u_agent))
  44.     {
  45.         $bname = 'Mozilla Firefox';
  46.         $ub = "Firefox";
  47.     }
  48.     elseif(preg_match('/Chrome/i',$u_agent))
  49.     {
  50.         $bname = 'Google Chrome';
  51.         $ub = "Chrome";
  52.     }
  53.     elseif(preg_match('/Safari/i',$u_agent))
  54.     {
  55.         $bname = 'Apple Safari';
  56.         $ub = "Safari";
  57.     }
  58.     elseif(preg_match('/Opera/i',$u_agent))
  59.     {
  60.         $bname = 'Opera';
  61.         $ub = "Opera";
  62.     }
  63.     elseif(preg_match('/Netscape/i',$u_agent))
  64.     {
  65.         $bname = 'Netscape';
  66.         $ub = "Netscape";
  67.     }
  68.    
  69.     // finally get the correct version number
  70.     $known = array('Version', $ub, 'other');
  71.     $pattern = '#(?<browser>' . join('|', $known) .
  72.     ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
  73.     if (!preg_match_all($pattern, $u_agent, $matches)) {
  74.         // we have no matching number just continue
  75.     }
  76.    
  77.     // see how many we have
  78.     $i = count($matches['browser']);
  79.     if ($i != 1) {
  80.         //we will have two since we are not using 'other' argument yet
  81.         //see if version is before or after the name
  82.         if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
  83.             $version= $matches['version'][0];
  84.         }
  85.         else {
  86.             $version= $matches['version'][1];
  87.         }
  88.     }
  89.     else {
  90.         $version= $matches['version'][0];
  91.     }
  92.    
  93.     // check if we have a number
  94.     if ($version==null || $version=="") {$version="?";}
  95.    
  96.     return array(
  97.         'userAgent' => $u_agent,
  98.         'name'      => $bname,
  99.         'version'   => $version,
  100.         'platform'  => $platform,
  101.         'pattern'    => $pattern
  102.     );
  103. }
  104.  
  105. function getUserIP()
  106. {
  107.     $client  = @$_SERVER['HTTP_CLIENT_IP'];
  108.     $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
  109.     $remote  = $_SERVER['REMOTE_ADDR'];
  110.  
  111.     if(filter_var($client, FILTER_VALIDATE_IP))
  112.     {
  113.         $ip = $client;
  114.     }
  115.     elseif(filter_var($forward, FILTER_VALIDATE_IP))
  116.     {
  117.         $ip = $forward;
  118.     }
  119.     else
  120.     {
  121.         $ip = $remote;
  122.     }
  123.  
  124.     return $ip;
  125. }
  126.  
  127. // **************************************************
  128.  
  129. $Browser=getBrowser();
  130.  
  131. $RefInfo = Array();
  132. $referrer = 'https://www.google.com.tr/?gws_rd=ssl#q=şunu%20aradım';
  133. $referrer = str_replace("#","&",$referrer);
  134. $ref = parse_url($referrer);
  135. if(isset($ref['host'])){
  136. $refdomain = $ref['host'];
  137. $refdomain = str_replace("www.","",$refdomain);
  138. $parsed = parse_url( $referrer, PHP_URL_QUERY );
  139.  
  140. parse_str( $parsed, $query );
  141.  
  142. if(isset($query['q'])){
  143.     $keyword = $query['q'];
  144. }elseif(isset($query['p'])){
  145.     $keyword = $query['p'];
  146. }elseif(isset($query['text'])){
  147.     $keyword = $query['text'];
  148. }
  149.  
  150.  
  151. if(isset($keyword)){
  152.     $RefInfo['Name'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  153.     $RefInfo['Browser'] = $Browser['name'];
  154.     $RefInfo['BrowserVer'] = $Browser['version'];
  155.     $RefInfo['OpSystem'] = $Browser['platform'];
  156.     $RefInfo['BrowserAgent'] = $_SERVER['HTTP_USER_AGENT'];
  157.     $RefInfo['BrowserLang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  158.     $RefInfo['IP'] = getUserIP();
  159.     $RefInfo['Type'] = "search";
  160.     $RefInfo['Domain'] = $refdomain;
  161.     $RefInfo['Keyword'] = $keyword;
  162.    
  163. }else{
  164.     $RefInfo['Name'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  165.     $RefInfo['Browser'] = $Browser['name'];
  166.     $RefInfo['BrowserVer'] = $Browser['version'];
  167.     $RefInfo['OpSystem'] = $Browser['platform'];
  168.     $RefInfo['BrowserAgent'] = $_SERVER['HTTP_USER_AGENT'];
  169.     $RefInfo['BrowserLang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  170.     $RefInfo['IP'] = getUserIP();
  171.     $RefInfo['Type'] = "referral";
  172.     $RefInfo['Domain'] = $refdomain;
  173.     $RefInfo['Keyword'] = "";
  174. }
  175.  
  176. }else{
  177.     $RefInfo['Name'] = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  178.     $RefInfo['Browser'] = $Browser['name'];
  179.     $RefInfo['BrowserVer'] = $Browser['version'];
  180.     $RefInfo['OpSystem'] = $Browser['platform'];
  181.     $RefInfo['BrowserAgent'] = $_SERVER['HTTP_USER_AGENT'];
  182.     $RefInfo['BrowserLang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  183.     $RefInfo['IP'] = getUserIP();
  184.     $RefInfo['Type'] = "direct";
  185.     $RefInfo['Domain'] = "";
  186.     $RefInfo['Keyword'] = '';
  187. }
  188.  
  189. echo json_encode($RefInfo);
  190.  
  191. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement