Example #1
0
 public static function run()
 {
     // Jump ship if no key has been specified
     if (!Config::has('locate::options.maxmind_key')) {
         return false;
     }
     $options = array('l' => Config::get('locate::options.maxmind_key'), 'i' => Locate::ip());
     $response = @file_get_contents('http://geoip.maxmind.com/b?' . http_build_query($options));
     if ($response !== false) {
         $response = explode(',', $response);
         // Verify fields
         if (isset($response[5]) && $response[5] == 'IP_NOT_FOUND') {
             return false;
         }
         $required_fields = array(1, 2, 3, 4);
         foreach ($required_fields as $field) {
             if (!isset($response[$field]) || empty($response[$field])) {
                 return false;
             }
         }
         $states = Config::get('locate::abbrevs.states');
         return array('city' => $response[2], 'state' => isset($states[$response[1]]) ? $states[$response[1]] : null, 'state_code' => $response[1], 'country' => $response[0], 'country_code' => $response[0], 'zipcode' => null, 'lat' => $response[3], 'lng' => $response[4]);
     }
     return false;
 }
Example #2
0
 public static function run()
 {
     $response = @file_get_contents('http://freegeoip.net/json/' . Locate::ip());
     if ($response !== false) {
         $response = json_decode($response, true);
         // Verify fields
         $required_fields = array('city', 'region_name', 'latitude', 'longitude');
         foreach ($required_fields as $field) {
             if (!isset($response[$field]) || empty($response[$field])) {
                 return false;
             }
         }
         return array('city' => ucwords(strtolower($response['city'])), 'state' => ucwords(strtolower($response['region_name'])), 'state_code' => strtoupper($response['region_code']), 'country' => ucwords(strtolower($response['country_name'])), 'country_code' => strtoupper($response['country_code']), 'zipcode' => $response['zipcode'], 'lat' => $response['latitude'], 'lng' => $response['longitude']);
     }
     return false;
 }
Example #3
0
 public static function run()
 {
     // Jump ship if no key has been specified
     if (!Config::has('locate::options.ipinfodb_key')) {
         return false;
     }
     $options = array('key' => Config::get('locate::options.ipinfodb_key'), 'ip' => Locate::ip(), 'format' => 'json');
     $response = @file_get_contents('http://api.ipinfodb.com/v3/ip-city/?' . http_build_query($options));
     if ($response !== false) {
         $response = json_decode($response, true);
         // Verify fields
         if (!isset($response['statusCode']) || $response['statusCode'] != 'OK') {
             return false;
         }
         $required_fields = array('cityName', 'regionName', 'latitude', 'longitude');
         foreach ($required_fields as $field) {
             if (!isset($response[$field]) || empty($response[$field])) {
                 return false;
             }
         }
         return array('city' => ucwords(strtolower($response['cityName'])), 'state' => ucwords(strtolower($response['regionName'])), 'state_code' => array_search(ucwords(strtolower($response['regionName'])), Config::get('locate::abbrevs.states')), 'country' => ucwords(strtolower($response['countryName'])), 'country_code' => strtoupper($response['countryCode']), 'zipcode' => $response['zipCode'], 'lat' => $response['latitude'], 'lng' => $response['longitude']);
     }
     return false;
 }