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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (622.8 kB view details)

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

iptocc-3.3.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.2-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.2.tar.gz.

File metadata

  • Download URL: iptocc-3.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 aa172fbb0cabb5b9b0df294c17f551725c2e8617138c899726fb05f1ccb27b0f
MD5 e199ae1622ddbb5df4dac7e939c5feaf
BLAKE2b-256 7120d7a71ef23547e418bf9a57e1b3ce68c017a50445a77c9fa0d75c7f94e0a3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.2-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.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cec597c6cc7d62ff1633e98dcbf2340ffe939574e870da0d803ca10639b57d08
MD5 9d1adced73cea1069efe4ef47f4072bd
BLAKE2b-256 7ab9de79e124e7758bbf75a6ca9efb48097f953d406c20e2c50f65fb1d7d52c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f86285cc10f85a68c8fe15e12a9ce9552f4fdff55eb672841c5a39ecdd282792
MD5 3abf0192459a89463880a4f89eeebacd
BLAKE2b-256 4fb2163d9626ac3d76dba9e0188da657348e83b4fb7690fd2ec5f8808982c863

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2052d6d0703c1ab62ad66ff906367f0cd158c3d3d2e5491ba844c325282a6623
MD5 45410c12b55c7c523853e8ea25e42d90
BLAKE2b-256 3b76332f7afa8f9cbe4ff51c354e17af1206060945c29c043702382c9ae19e1b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f4bc22a3493a6655e910bc599741d4adc90f7f89e3eb6291fe5df182ba783fd
MD5 51f488518e7454d5289d6f1ba6e8743c
BLAKE2b-256 9fc6f5b6fdc8f12f8875956c3a417e0fcd27ebb22b87191d34960ae932d79c63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0f3c5ac5535fe08c10770fe6da6f2cb5a21749f5ea81a185bc575dff50f85453
MD5 c170b814865b898a9412d5c8390dae63
BLAKE2b-256 887799bd1b5cf45cb33c3e5b966dd411c86e3be200136a8c891229a513d75234

See more details on using hashes here.

Provenance

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