A lightweight and efficient PHP library for querying IP data from the IpQuery API.
Easily retrieve detailed information about IP addresses, including ISP details, geolocation, and risk analysis.
- Retrieve your public IP information with ease.
- Query detailed data for single or multiple IP addresses.
- Parse JSON responses into strongly-typed PHP objects.
- Simple integration using pure PHP and cURL.
You can install the library using Composer:
composer require guibranco/ipquery-php
require_once 'vendor/autoload.php';
use GuiBranco\IpQuery\IpQueryClient;
$client = new IpQueryClient();
try {
$ipQuery = $client->getMyIpData();
echo "My IP: {$ipQuery->ip}" . PHP_EOL;
echo "ISP: {$ipQuery->isp->org}" . PHP_EOL;
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . PHP_EOL;
}
$ipData = $client->getIpData('8.8.8.8');
echo "IP: {$ipData->ip}" . PHP_EOL;
echo "Location: {$ipData->location->city}, {$ipData->location->country}" . PHP_EOL;
$multipleIpData = $client->getMultipleIpData(['8.8.8.8', '8.8.4.4']);
foreach ($multipleIpData as $ip) {
echo "IP: {$ip->ip}, Org: {$ip->isp->org}" . PHP_EOL;
}
The library parses JSON responses into the following class structure:
class IpQueryResponse {
public string $ip;
public Isp $isp;
public Location $location;
public Risk $risk;
}
class Isp {
public string $asn;
public string $org;
public string $isp;
}
class Location {
public string $country;
public string $country_code;
public string $city;
public string $state;
public string $zipcode;
public float $latitude;
public float $longitude;
public string $timezone;
public string $localtime;
}
class Risk {
public bool $is_mobile;
public bool $is_vpn;
public bool $is_tor;
public bool $is_proxy;
public bool $is_datacenter;
public int $risk_score;
}
- PHP 8.2 or newer
- cURL extension enabled
This project uses PhpUnit 11 for unit tests. To run the tests, execute:
./vendor/bin/phpunit
Contributions are welcome! Please read the CONTRIBUTING.md file for details on the process.
Feel free to open issues or submit pull requests to improve the library.
This project is licensed under the MIT License.
Explore the examples/ directory for more code samples and ideas.