Skip to main content

A Python library to query IP addresses using ipquery.io API

Project description

ipquery

A Python 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.
  • Includes Pydantic models for easy data validation and parsing.

Installation

Install the package using pip:

pip install ipcore

Usage

Importing the Package

from ipapi.client import IPAPIClient

Query a Specific IP Address

Fetch information about a specific IP address:

Synchronously

from ipapi.client import IPAPIClient

client = IPAPIClient()
ip_info = client.query_ip("8.8.8.8")
print(ip_info)

Asychronously

from ipapi.client import AsyncIPAPIClient

async def main():
    client = AsyncIPAPIClient()
    ip_info = await client.query_ip("8.8.8.8")
    print(ip_info)

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

Example Output:

IPInfo(ip='8.8.8.8', isp=ISPInfo(asn='AS15169', org='Google LLC', isp='Google LLC'),
location=LocationInfo(country='United States', country_code='US', city='Mountain View',
state='California', zipcode='94035', latitude=37.386, longitude=-122.0838, timezone='America/Los_Angeles', localtime='2024-11-09T12:45:32'),
risk=RiskInfo(is_mobile=False, is_vpn=False, is_tor=False, is_proxy=False, is_datacenter=True, risk_score=0))

Fetch Your Own Public IP Address

Retrieve your machine's public IP address:

ip = client.query_own_ip()
print(f"Your IP: {ip}")

Example Output:

Your IP: 203.0.113.45

Bulk Query Multiple IP Addresses

Fetch details for multiple IP addresses in a single request:

ips = ["8.8.8.8", "1.1.1.1"]
results = client.query_bulk(ips)
for ip_info in results:
    print(ip_info)

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:

pytest tests/

Requirements

  • Python 3.7+
  • Pydantic 2.x
  • httpx

License

This project is licensed under the MIT License. See the LICENSE file for more information.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipcore-0.1.2.tar.gz (3.6 kB view details)

Uploaded Source

File details

Details for the file ipcore-0.1.2.tar.gz.

File metadata

  • Download URL: ipcore-0.1.2.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for ipcore-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9dc6cbc7891976373164d058f097e9622631fbe7db426efbbff273c80e9eb496
MD5 24e826abdddb5fc64cca37eaddb8f5fa
BLAKE2b-256 43d6f021b0cef11a4e59d73211d21197d433caf81ce3b8449c53eca96caa2083

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page