dart_ipquery
A Dart library to query IP addresses using the ipquery.io API. This library allows you to easily retrieve detailed information about IP addresses, including ISP data, geolocation details, and risk analysis.
Features
- Query detailed information for a specific IP address.
- Fetch your own public IP address.
- Perform bulk queries for multiple IP addresses.
Installation
Install the package using pub:
dart pub add dart_ipquery
Usage
Importing the Package
import 'package:dart_ipquery/dart_ipquery.dart';
Query a Specific IP Address
Fetch information about a specific IP address:
import 'package:dart_ipquery/dart_ipquery.dart';
Future<void> main() async {
final client = IpQueryCient();
final ipInfo = await client.queryIp("8.8.8.8");
print(ipInfo);
}
Example Output
IpInfo{ip: 8.8.8.8, ispInfo: null, location: Location{country: United States, countryCode: US, state: California, city: Mountain View, zipCode: 94043, lat: null, lon: null, timezone: America/Los_Angeles, localTime: 2025-03-19T19:11:46}, risk: Risk{isMobile: false, isVpn: false, isTor: false, isProxy: false, isDatacenter: true, riskScore: 0}}
Fetch Your Own Public IP Address
Retrieve your machine's public IP address:
import 'package:dart_ipquery/dart_ipquery.dart';
Future<void> main() async {
final client = IpQueryCient();
final ip = await client.queryOwnIp();
print(ip);
}
Example Output
203.0.113.45
Bulk Query Multiple IP Addresses
Fetch details for multiple IP addresses in a single request:
import 'package:dart_ipquery/dart_ipquery.dart';
Future<void> main() async {
final ips = ["8.8.8.8", "1.1.1.1"];
final client = IpQueryCient();
final results = await client.queryBulk(ips);
for (final ipInfo in results) {
print(ipInfo);
}
}
Example Output
IPInfo{ip: 8.8.8.8, ...}
IPInfo{ip: 1.1.1.1, ...}
Running Tests
If you want to run tests to verify functionality:
dart test .
License
This project is licensed under the MIT License. See the LICENSE file for more information.