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.52.tar.gz (445.6 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.52-cp310-abi3-win_amd64.whl (514.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.52-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.8 kB view details)

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

iptocc-3.3.52-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.52-cp310-abi3-macosx_11_0_arm64.whl (622.6 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.52-cp310-abi3-macosx_10_12_x86_64.whl (615.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.52.tar.gz
  • Upload date:
  • Size: 445.6 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.52.tar.gz
Algorithm Hash digest
SHA256 6e879c889e94a45c71d0dd9911878a58034538a7108dfe0061e1d1a4d92ca577
MD5 bfa8bb8d3927ec016276e5f8eee576a6
BLAKE2b-256 8e612b4f20c907ebd8207f80771b06b2611d4265672e635965ddac7d65b42378

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.52-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.2 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.52-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6739950c005efbde526c987af2c1f0ba7b04e77a557e0abdf0495b202f935c57
MD5 316954824cc110eaafd8c068b3814b8d
BLAKE2b-256 b3860a784efee51255e7aefac6344173ca58905ff68bb7482036c54aa9b0567a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.52-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 070d6f53b66bdfa5a9f710baf4453ff4ca09ddd1432b7a5f066d4100b19b43a5
MD5 f4800ed1a298dd734b2b343bc301005e
BLAKE2b-256 71da87dc719dd72227b60d1cc30bd82cedce9ca25fa0b418e43583615041f610

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.52-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b4d01cc0c2f9be87482303f82dec92220f50af3950c929b53b51e19fd5aa5bc7
MD5 58931ae8eb78ed8411f36f1661ccb74b
BLAKE2b-256 df5e28e16c9e12986084422baf037062fdbbff3952461e5730699b4ed6df5fc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.52-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cedfa6b1d300abc6029637b11b22d06ab345fc16fd6529f3e5f70397dc23ec8b
MD5 ea9b4903b34e65be6bde36256206690f
BLAKE2b-256 29bb8082e6b128bf6fa11b37904617f9868d35ea0e4550f525bdf4802dbc3b92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.52-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2ebbc1d4da5b52dcf89ddf85a966ea08a9a0986164756692771c3ed13cc9e415
MD5 c8a1f9723e7637a52d6531da135943a2
BLAKE2b-256 73d326a83717fe54782e3a2fe8ad7dbbc65edf15dae2094bdf7ac2c8078d8e60

See more details on using hashes here.

Provenance

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