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.46.tar.gz (445.4 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.46-cp310-abi3-win_amd64.whl (513.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.46-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.7 kB view details)

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

iptocc-3.3.46-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.46-cp310-abi3-macosx_11_0_arm64.whl (621.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.46-cp310-abi3-macosx_10_12_x86_64.whl (615.6 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.46.tar.gz
  • Upload date:
  • Size: 445.4 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.46.tar.gz
Algorithm Hash digest
SHA256 1e55d33b45eca606397d3775ede5e94f1001e63e12193a5615918d22e1fa8615
MD5 09d211b2a43cbafa3bb0cd97b7a1ee64
BLAKE2b-256 a3fb0e75025f9312d722cc5716dd1a9ba7cca7c2973b203428a18e5432fe8400

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.46.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.46-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: iptocc-3.3.46-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.8 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.46-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 26e8ef7db19df127502b1f99a8bc52fb6ffb92b57340247ed44e9efac4e786cb
MD5 900778074aa6ffe87ac49e3d57675fc0
BLAKE2b-256 b317b6105a02eab5652f9c8c363e6944dd11facdd50897edcb8b72e3aa242753

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.46-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.46-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.46-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e09c5e20ad7421167ec82bb57d26f09cff13a55b03347c3a596a44bcc9731c1e
MD5 e874453468846aaa01caad42950358db
BLAKE2b-256 66e842cfeaf509f7fab02c37058dc5782856b51d8f442b46b67942662463b69f

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.46-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.46-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.46-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 060e0474651f58bb519b5192bb90a2be6f8a215fe1c33698c20e1784381c6a34
MD5 c88365916e19aea680a0c436c624e67a
BLAKE2b-256 d7387f8341b4876ab69fd3c2558fbdf1a1fcb1dfd1d95a229b158daaf2ea6144

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.46-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.46-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.46-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ed4b07020442fc7799ca9468c892eb61c99ee51a75bec89af7237f072596a0a
MD5 2eda6e895df11953823f8307e4a63ec2
BLAKE2b-256 078fc5b613d6f8850a6e879ec81a0afda95e9feb9e28da14d6e35c2301b8b8f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.46-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.46-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.46-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 125756c811c57afc56547104a5844de36eb5f0f223001a93c2edd5deea182da5
MD5 ebd7aac638a90d40653e2b3eeb6a4576
BLAKE2b-256 eb2390ce55256b931f05f19237e8b04b2b515d1c8012f74b55d03f15d624af4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.46-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