Skip to main content

Fast, offline IP-to-country lookup. Python bindings over the Rust iptocc crate.

Project description

iptocc

PyPI Python License

Python bindings for the iptocc Rust crate. Offline IPv4 and IPv6 to ISO 3166-1 alpha-2 country code lookup.

Note: Country codes reflect the country assigned by a Regional Internet Registry (RIR) to each IP block, not where the block is being used. RIR data agrees with MaxMind for ~95% of IPv4 addresses and has minimal discrepancies for IPv6 (Zander, 2012).

Important: iptocc 3.0 is a complete Rust rewrite. Versions 2.x and earlier were pure Python on top of pandas. The public API stays mostly compatible (see migration notes below), single-lookup latency dropped from ~78 ms to ~44-141 ns, and a batch API was added.

Features

  • Offline lookup, no API keys, no network calls
  • IPv4 and IPv6 in one call
  • Single string OR batch (any iterable of strings)
  • Lookup data embedded in the wheel; no runtime file I/O
  • iptocc CLI installed with pip install iptocc
  • Data refreshed nightly from the five Regional Internet Registries

Install

Requires Python 3.10 or newer.

pip install iptocc

Usage

from iptocc import country_code

country_code("8.8.8.8")                       # "US"
country_code(["8.8.8.8", "1.0.16.1"])         # ["US", "JP"]

A CLI is installed alongside the library:

$ iptocc 8.8.8.8 1.0.16.1
8.8.8.8 US
1.0.16.1 JP

Migrating from 2.x

# 2.x
from iptocc import get_country_code, CountryCodeNotFound
try:
    cc = get_country_code("8.8.8.8")
except CountryCodeNotFound:
    cc = None

# 3.x
from iptocc import country_code
cc = country_code("8.8.8.8")  # returns None on miss

See also

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

iptocc-3.3.63.tar.gz (445.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

iptocc-3.3.63-cp310-abi3-win_amd64.whl (514.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.63-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

iptocc-3.3.63-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.63-cp310-abi3-macosx_11_0_arm64.whl (623.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.63-cp310-abi3-macosx_10_12_x86_64.whl (615.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file iptocc-3.3.63.tar.gz.

File metadata

  • Download URL: iptocc-3.3.63.tar.gz
  • Upload date:
  • Size: 445.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for iptocc-3.3.63.tar.gz
Algorithm Hash digest
SHA256 426fdab62398c717e2da59297ede03043be11af458ba9f63e69fd6f3df30482b
MD5 66792aa758a27d0182bd103c1ceabf09
BLAKE2b-256 dda2d5bfd98fcd45a9dfaeba2781c3ccff7e9fdc4f616a449887c378b5f77ff8

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.63.tar.gz:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.63-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: iptocc-3.3.63-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.7 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for iptocc-3.3.63-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4fbe8f539c46e28d38e14a487e2daf6fdb8be9aaf89ca0d1cfd700a8f0be3476
MD5 93665f80f08ee06114aa758ecc551600
BLAKE2b-256 a17ed1e29931d2043001b1edb068114b646ed0014d6eda34d83c5d4aae25e9e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.63-cp310-abi3-win_amd64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.63-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.63-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 08dc782355c473ce9db0a2a15602548ce8845f88b967c5dba71c5affe0174173
MD5 d2b634dde7d2c19febf879cf0b4c7366
BLAKE2b-256 bb5e47c12d4df6de124ad9b6272a515f02ef94ba5cfce9b82f13d4e5b3efbee6

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.63-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.63-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.63-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9224dfbde5dc7a43d7ef1be261ecb90667f73baebf5e2509e578bb70077c0c70
MD5 2c4be608013db3188f9a8d95e80d1ad4
BLAKE2b-256 d8bc5785f22d3398391047b5e5389d9d0a0f5e0cb1fdd1326768a233ef340c40

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.63-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.63-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.63-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 149f0a586e754ea34724ea80b8a05604868667d143d0c5d769ffeecc8288ffa4
MD5 1c7dd8f1d96ef4733f2fa97aad41b098
BLAKE2b-256 2d9608dab4289bc717cff1ae0b4e5b7523c310e91707f354517931b8e79e574b

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.63-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.63-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.63-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 267090ca717c65091b280b0ae7c066b50160f67779b87951e74c719479d64c5e
MD5 9e326862e7761c3ff205066c35d1f523
BLAKE2b-256 67b98075ec0f3cdcd702421327cc49de37cae8a1b5ac9d68f02d1a19f9905a10

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.63-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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