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


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.5.tar.gz (444.7 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.5-cp310-abi3-win_amd64.whl (514.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (623.0 kB view details)

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

iptocc-3.3.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.5-cp310-abi3-macosx_11_0_arm64.whl (619.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.5-cp310-abi3-macosx_10_12_x86_64.whl (614.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.5.tar.gz
  • Upload date:
  • Size: 444.7 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.5.tar.gz
Algorithm Hash digest
SHA256 5b819235f329546d2a538779d3b9a3db6d583e49fb120f7c7495ccb82f90476d
MD5 72ceda8b7e07ad7cd47e5028f63411ae
BLAKE2b-256 2378e5dc80bee8edd4666cf643fd81f5df9814cae6b1c7329f9f13d5f20e38b2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.5-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.4 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.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9c1b364ec7c0a323f2035c847b88813c8a1113c31fc6599c746e75d8387608aa
MD5 6ab67eeb8f5a69e24873347959684dbe
BLAKE2b-256 6c4ea7464cb4ef076887dee2f121496d984a64243f0cdb6b81fe8a8d8844169f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 995ad97a6342a1839cb9054b83ee1518908773179d8d46781884e8bac211a370
MD5 75499ff1df33f0c821ce9128938feb63
BLAKE2b-256 ab9930d19c51f9e4a17d5995b6b43dd53a49a8d7f22264e359df092be6085de7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 122830b2b66249600daa24a61a5af864e9ef3b27d70de5f53df98206ed2913e8
MD5 1d04dce4b68b34e773347b0fc1d89026
BLAKE2b-256 954528052f6abe15b184b932379b59ec9bc9cfd3da9b6d13f0276d6bc6865cf8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 47cd73413aaac61b456221f7087bff446eaea6ba30338613a30680f2b2e12d8d
MD5 41ef6f5c82238b57513f75be58126c99
BLAKE2b-256 48110a63f32e17deb061a8498908ee3612b344566cc5880a5eeccbc97c21f541

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e8d725ee954473928547b01da9a93320af1eb38d6bb5ac1b8129dbd0a1a7c399
MD5 c272337a65c90425c51fc6d4ec7ecc0e
BLAKE2b-256 977c80b6b0131c7c7099c42f776b6335df6c5085af0c020283a1e1458678353b

See more details on using hashes here.

Provenance

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