PHP Classes

FreeGoIP: Get the location of an address with FreeGoIP API

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStarStar 78%Total: 304 All time: 7,385 This week: 131Up
Version License PHP version Categories
freegeoip 1.0.5MIT/X Consortium ...5.3PHP 5, Web services, Geography
Description 

Author

This class can get the location of an address with FreeGoIP API.

It can take an IP address, a domain name or the current user IP address and sends HTTP requests to the FreeGoIP API server to retrieve the geographic location associated with that IP address including country, latitude, longitude, city, zip code and time zone.

The class can decode the response in either CSV, JSON or XML and returns it.

Picture of Ivan Melgrati
  Performance   Level  
Name: Ivan Melgrati is available for providing paid consulting. Contact Ivan Melgrati .
Classes: 11 packages by
Country: Argentina Argentina
Age: 49
All time rank: 1973 in Argentina Argentina
Week rank: 46 Up1 in Argentina Argentina Up
Innovation award
Innovation award
Nominee: 3x

Example

<?php
   
/**
     * This section includes a sample query that demonstrate features of the API.
     * The code below query performs a reverse geocoding request of IP 8.8.8.8 (One of Google's DNS servers)
     *
     * @author Ivan Melgrati
     * @copyright 2018
     * @package FreeGoIP
     * @version v1.2.0
     */

   
require_once ('../src/freegoip.php');
       
   
    echo
'<---------------> Reverse geocode 8.8.8.8 IP address <--------------->';
    echo
'<br /><br /><br />';
   
   
// Initialize FreeGoIP object
   
$geocoding_object = new FreeGoIP('8.8.8.8','',FreeGoIP::FORMAT_JSON);
   
   
// Perform query using JSON response format (returns an associative array if $raw parameter is set to false)
   
$geocoding_data = $geocoding_object->queryReverseGeocoding(false);
   
    echo
'--------------- JSON query -> Associative array ---------------';
    echo
'<pre>';
   
print_r($geocoding_data);
    echo
'</pre>';
   
   
// Perform query using JSON response format (returns raw JSON string)
   
$geocoding_data = $geocoding_object->queryReverseGeocoding(true);
   
    echo
'--------------- JSON query -> raw content output ---------------';
    echo
'<pre>';
   
print_r($geocoding_data);
    echo
'</pre>';
   
   
// Perform query using XML response format
   
$geocoding_object->setFormat(FreeGoIP::FORMAT_XML);
   
$geocoding_data = $geocoding_object->queryReverseGeocoding(true);
   
    echo
'--------------- XML query -> raw content output ---------------';
    echo
'<pre>';
    print(
htmlspecialchars($geocoding_data));
    echo
'</pre>';
?>


Details

FreeGoIP

GitHub license GitHub release Total Downloads GitHub issues GitHub stars

FreeGoIP - A PHP wrapper for FreeGoIP reverse geolocation API.

freegeoip.net is a service providing a public HTTP API for software developers to search the geolocation of IP addresses. It uses a database of IP addresses associated to cities along with other relevant information such as time zone, latitude and longitude.

The freegeoip web server is free and open source but the public service limit up to 10,000 queries per hour by default. Once this limit is reached, all requests from the IP will result in HTTP 403, forbidden, until the quota is cleared.

Developed by Ivan Melgrati Twitter

Requirements

  • PHP >= 5.3.0

Installation

Composer

The recommended installation method is through Composer, a dependency manager for PHP. Just add imelgrat/freegoip to your project's composer.json file:

{
    "require": {
        "imelgrat/freegoip": "*"
    }
}

More details can be found over at Packagist.

Manually

  1. Copy `src/freegoip.php` to your codebase, perhaps to the `vendor` directory.
  2. Add the `freegoip` class to your autoloader or `require` the file directly.

Feedback

Please open an issue to request a feature or submit a bug report. Or even if you just want to provide some feedback, I'd love to hear. I'm also available on Twitter as @imelgrat.

Contributing

  1. Fork it.
  2. Create your feature branch (`git checkout -b my-new-feature`).
  3. Commit your changes (`git commit -am 'Added some feature'`).
  4. Push to the branch (`git push origin my-new-feature`).
  5. Create a new Pull Request.

  Files folder image Files (66)  
File Role Description
Files folder imagedocs (2 files, 9 directories)
Files folder imageexamples (2 files)
Files folder imagesrc (1 file)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpdoc.dist.xml Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file VERSION Data Auxiliary data

  Files folder image Files (66)  /  docs  
File Role Description
Files folder imageclasses (1 file)
Files folder imagecss (5 files, 1 directory)
Files folder imagefiles (2 files)
Files folder imagefont (1 file)
Files folder imagegraphs (2 files)
Files folder imageimages (18 files, 1 directory)
Files folder imagejs (10 files, 1 directory)
Files folder imagenamespaces (1 file)
Files folder imagereports (3 files)
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Accessible without login HTML file index.html Doc. Documentation

  Files folder image Files (66)  /  docs  /  classes  
File Role Description
  Accessible without login HTML file FreeGoIP.html Doc. Documentation

  Files folder image Files (66)  /  docs  /  css  
File Role Description
Files folder imagephpdocumentor-clean-icons (2 files, 1 directory)
  Accessible without login Plain text file bootstrap-combined.no-icons.min.css Data Auxiliary data
  Accessible without login Plain text file font-awesome.min.css Data Auxiliary data
  Accessible without login Plain text file jquery.iviewer.css Data Auxiliary data
  Accessible without login Plain text file prism.css Data Auxiliary data
  Accessible without login Plain text file template.css Data Auxiliary data

  Files folder image Files (66)  /  docs  /  css  /  phpdocumentor-clean-icons  
File Role Description
Files folder imagefonts (2 files)
  Accessible without login Plain text file lte-ie7.js Data Auxiliary data
  Accessible without login Plain text file style.css Data Auxiliary data

  Files folder image Files (66)  /  docs  /  css  /  phpdocumentor-clean-icons  /  fonts  
File Role Description
  Accessible without login Plain text file phpdocumentor-clean-icons.dev.svg Data Auxiliary data
  Accessible without login Plain text file phpdocumentor-clean-icons.svg Data Auxiliary data

  Files folder image Files (66)  /  docs  /  files  
File Role Description
  Accessible without login HTML file freegoip.html Doc. Documentation
  Accessible without login Plain text file freegoip.php.txt Doc. Documentation

  Files folder image Files (66)  /  docs  /  font  
File Role Description
  Accessible without login Plain text file fontawesome-webfont.svg Data Auxiliary data

  Files folder image Files (66)  /  docs  /  graphs  
File Role Description
  Accessible without login HTML file class.html Doc. Documentation
  Accessible without login Plain text file classes.svg Data Auxiliary data

  Files folder image Files (66)  /  docs  /  images  
File Role Description
Files folder imageiviewer (8 files)
  Accessible without login Image file android-chrome-192x192.png Icon Icon image
  Accessible without login Image file android-chrome-512x512.png Data Auxiliary data
  Accessible without login Image file apple-touch-icon-114x114.png Icon Icon image
  Accessible without login Image file apple-touch-icon-72x72.png Icon Icon image
  Accessible without login Image file apple-touch-icon.png Icon Icon image
  Accessible without login Plain text file custom-icons.svg Data Auxiliary data
  Accessible without login Image file favicon-16x16.png Icon Icon image
  Accessible without login Image file favicon-32x32.png Icon Icon image
  Accessible without login Image file favicon.ico Data Auxiliary data
  Accessible without login Image file hierarchy-item.png Icon Icon image
  Accessible without login Image file icon-class-13x13.png Icon Icon image
  Accessible without login Plain text file icon-class.svg Data Auxiliary data
  Accessible without login Image file icon-interface-13x13.png Icon Icon image
  Accessible without login Plain text file icon-interface.svg Data Auxiliary data
  Accessible without login Image file icon-trait-13x13.png Icon Icon image
  Accessible without login Plain text file icon-trait.svg Data Auxiliary data
  Accessible without login Image file mstile-150x150.png Icon Icon image
  Accessible without login Plain text file safari-pinned-tab.svg Data Auxiliary data

  Files folder image Files (66)  /  docs  /  images  /  iviewer  
File Role Description
  Accessible without login Image file grab.cur Data Auxiliary data
  Accessible without login Image file hand.cur Data Auxiliary data
  Accessible without login Image file iviewer.rotate_left.png Icon Icon image
  Accessible without login Image file iviewer.rotate_right.png Icon Icon image
  Accessible without login Image file iviewer.zoom_fit.png Icon Icon image
  Accessible without login Image file iviewer.zoom_in.png Icon Icon image
  Accessible without login Image file iviewer.zoom_out.png Icon Icon image
  Accessible without login Image file iviewer.zoom_zero.png Icon Icon image

  Files folder image Files (66)  /  docs  /  js  
File Role Description
Files folder imageui (1 directory)
  Accessible without login Plain text file bootstrap.min.js Data Auxiliary data
  Accessible without login Plain text file html5.js Data Auxiliary data
  Accessible without login Plain text file jquery-1.11.0.min.js Data Auxiliary data
  Accessible without login Plain text file jquery.dotdotdot-1.5.9.js Data Auxiliary data
  Accessible without login Plain text file jquery.dotdotdot-1.5.9.min.js Data Auxiliary data
  Accessible without login Plain text file jquery.iviewer.js Data Auxiliary data
  Accessible without login Plain text file jquery.iviewer.min.js Data Auxiliary data
  Accessible without login Plain text file jquery.mousewheel.js Data Auxiliary data
  Accessible without login Plain text file jquery.smooth-scroll.js Data Auxiliary data
  Accessible without login Plain text file prism.min.js Data Auxiliary data

  Files folder image Files (66)  /  docs  /  js  /  ui  
File Role Description
Files folder image1.10.4 (1 file)

  Files folder image Files (66)  /  docs  /  js  /  ui  /  1.10.4  
File Role Description
  Accessible without login Plain text file jquery-ui.min.js Data Auxiliary data

  Files folder image Files (66)  /  docs  /  namespaces  
File Role Description
  Accessible without login HTML file default.html Doc. Documentation

  Files folder image Files (66)  /  docs  /  reports  
File Role Description
  Accessible without login HTML file deprecated.html Doc. Documentation
  Accessible without login HTML file errors.html Doc. Documentation
  Accessible without login HTML file markers.html Doc. Documentation

  Files folder image Files (66)  /  examples  
File Role Description
  Accessible without login Plain text file example-domain.php Example Example script
  Accessible without login Plain text file example-ip-address.php Example Example script

  Files folder image Files (66)  /  src  
File Role Description
  Plain text file FreeGoIP.php Class Class source

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:304
This week:0
All time:7,385
This week:131Up
 User Ratings  
 
 All time
Utility:100%StarStarStarStarStarStar
Consistency:91%StarStarStarStarStar
Documentation:91%StarStarStarStarStar
Examples:100%StarStarStarStarStarStar
Tests:-
Videos:-
Overall:78%StarStarStarStar
Rank:42