ππ IpQuery API Client for PHP
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.
Features β¨
- 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.
Installation π¦
You can install the library using Composer:
composer require guibranco/ipquery-php
Usage π
Get your public IP data
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;
}
Get data for a specific IP
$ipData = $client->getIpData('8.8.8.8');
echo "IP: {$ipData->ip}" . PHP_EOL;
echo "Location: {$ipData->location->city}, {$ipData->location->country}" . PHP_EOL;
Get data for multiple IPs
$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;
}
Response Mapping πΊοΈ
The library parses JSON responses into the following class structure:
IpQueryResponse
class IpQueryResponse {
public string $ip;
public Isp $isp;
public Location $location;
public Risk $risk;
}
Isp
class Isp {
public string $asn;
public string $org;
public string $isp;
}
Location
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;
}
Risk
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;
}
Requirements π οΈ
- PHP 8.2 or newer
- cURL extension enabled
Running Tests π§ͺ
This project uses PhpUnit 11 for unit tests. To run the tests, execute:
./vendor/bin/phpunit
Contribution π€
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.
License π
This project is licensed under the MIT License.
Examples π
Explore the examples/ directory for more code samples and ideas.