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.73.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.73-cp310-abi3-win_amd64.whl (514.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.73-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.4 kB view details)

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

iptocc-3.3.73-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.73-cp310-abi3-macosx_11_0_arm64.whl (623.1 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.73-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.73.tar.gz.

File metadata

  • Download URL: iptocc-3.3.73.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.73.tar.gz
Algorithm Hash digest
SHA256 807418f60cdacbd0907a8bf4003c916d83996332bf1a25647968888e4a417057
MD5 735e91addbf7f984480e2784da47d4a4
BLAKE2b-256 5d0db40cd5a797656d1eb69574ffc2ff7e7b5fb252f0bc6ef91e248df424abe8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.73-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.73-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2588c87e6d7ce2be79a6ecee6f497fed4b5240fd4da57b8ec9715f749f7e48ff
MD5 882b3e8b7d08c6777f65a12ad4d0758c
BLAKE2b-256 836a1b76a323dfc11c94e3ee25f38b8c246867d85507504f4ffca7461c5e7607

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.73-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14cafd9f259699e5d31bab05f55a55136380f040cbb461273c608658b249f581
MD5 50420079288b20a80017c55501bd25e9
BLAKE2b-256 a6141543921fa34cd15a0b787457cd30c3ea5d03b09f1d97a612e34415612c18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.73-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bd36334c5e850339a5e615158c43dbc12e2fb8b2bedbc85b883124a1bb73d640
MD5 72a6d4c482d0b12c3111bb2307c9ae93
BLAKE2b-256 30fae78e739580b68e1f193fe265df208826ed3c31fdcfafc6c89b4dc3783ed9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.73-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8071081e56a44311c5294485ff0a9118463be830ecdb1624511a1d19d47e14e1
MD5 f5cd205ea48b0191a7cfd408613edd17
BLAKE2b-256 172c95f6fc353dd036fc0f899fda31a14924d8c708b21b13bfdf674a446cae51

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.73-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e090549d315cc587b2d3e01de1ad5459ccf0f79d2cb44ed7406b7bb187600efd
MD5 7e601f4bece88993f93666b8d49f491d
BLAKE2b-256 d940d1ba21d3bb2cb7d3c33dd39fd6a5fd10c854898ccdd402c95e84b2ee6dbd

See more details on using hashes here.

Provenance

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