×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: PHP
Posted by: Bob Ray
Added: Jul 16, 2015 10:14 PM
Modified: Jul 16, 2015 10:36 PM
Views: 7
Find the city of a web visitor
  1. /* Original code by Mohit Madan @TheMohitMadan */
  2. function detect_city($ip) {
  3.        
  4.         $default = 'UNKNOWN';
  5.  
  6.         $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
  7.        
  8.         $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);
  9.         $ch = curl_init();
  10.        
  11.         $curl_opt = array(
  12.             CURLOPT_FOLLOWLOCATION  => 1,
  13.             CURLOPT_HEADER      => 0,
  14.             CURLOPT_RETURNTRANSFER  => 1,
  15.             CURLOPT_USERAGENT   => $curlopt_useragent,
  16.             CURLOPT_URL       => $url,
  17.             CURLOPT_TIMEOUT         => 1,
  18.             CURLOPT_REFERER         => 'http://' . $_SERVER['HTTP_HOST'],
  19.         );
  20.        
  21.         curl_setopt_array($ch, $curl_opt);
  22.        
  23.         $content = curl_exec($ch);
  24.        
  25.         if (!is_null($curl_info)) {
  26.             $curl_info = curl_getinfo($ch);
  27.         }
  28.        
  29.         curl_close($ch);
  30.        
  31.         if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) )  {
  32.             $city = $regs[1];
  33.         }
  34.         if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) )  {
  35.             $state = $regs[1];
  36.         }
  37.  
  38.         if( $city!='' && $state!='' ){
  39.           $location = $city . ', ' . $state;
  40.           return $location;
  41.         }else{
  42.           return $default;
  43.         }
  44.        
  45.     }