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.81.tar.gz (445.9 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.81-cp310-abi3-win_amd64.whl (515.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.81-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.5 kB view details)

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

iptocc-3.3.81-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.81-cp310-abi3-macosx_11_0_arm64.whl (618.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.81-cp310-abi3-macosx_10_12_x86_64.whl (618.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.81.tar.gz
  • Upload date:
  • Size: 445.9 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.81.tar.gz
Algorithm Hash digest
SHA256 a5b95f7b6dd927bcf1a43c76be0bfd3be95f7091fa703cd17e2ce2813b503321
MD5 616b056568313a7e807ed3565c1e0d1c
BLAKE2b-256 0ce43380b90b4a3b1477dc0f21d6af13c41d464dd7839b325058846fd98488b9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.81-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.6 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.81-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6ff314853edd87d436dd56dabfa84d65acc297fe385e94f9ae6b87f7a2960412
MD5 4a26054f819aab2dc23a8be7e10e4d93
BLAKE2b-256 d67e79cc602306c7cc58a1d1724b83d6b3bdc98addb9b29e939ffaf203218102

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.81-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec9651a5d9fc1f0c73260b76a8407a550c554622a7cabc929261eb65c7b8e302
MD5 b770f81bffb4cefb68bdd7549c6d9eb3
BLAKE2b-256 94754f659403e91d7fd0f5e62083eef0ea6d7a0124487d24e6f04c394cf278e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.81-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7cfb6e010bea2a65bc79ab7e64f7c6ad640d21fcfae25752b0cba941e113d6a1
MD5 c465bec30d5d955d4dff97f00f25553e
BLAKE2b-256 63641994cc8c4c18579ae05e5b67d7f3d075e9b9c749a918d094b5e61baed2a4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.81-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e12015dd899778a95b2b1f5c4400ad2b840df8dc1c5ea62e465bb6befb088b6
MD5 38afd8083eef2aa62d94220dbd815b10
BLAKE2b-256 c3f80af81162cc8d1ebc9c35259f75a8cfd82ae99acb179f394852d942a32155

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.81-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1df01705dbb63f63b51d88009af143435c73e7bd4215b4b26e0fd461598e54f8
MD5 b5496d7d85ddf3238b11f691240ecbf7
BLAKE2b-256 77921cc44d7a98cd5287c7110d737cfb94bff248774c8e6a896649f63791131b

See more details on using hashes here.

Provenance

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