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.23.tar.gz (444.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.23-cp310-abi3-win_amd64.whl (513.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.23-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.4 kB view details)

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

iptocc-3.3.23-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (624.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.23-cp310-abi3-macosx_11_0_arm64.whl (620.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.23-cp310-abi3-macosx_10_12_x86_64.whl (614.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.23.tar.gz
  • Upload date:
  • Size: 444.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.23.tar.gz
Algorithm Hash digest
SHA256 a0070a6071fdaaad41cb6eb665ace6e19c52296144d579e8f8f0c4f738bd1ea8
MD5 efd192c40bce04084ac7f6d9c9ae80bf
BLAKE2b-256 7b71c52994688ff5fca818ed28e27afedc9118a7d88bb3cf2670fab6d97e4e34

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.23-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.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.23-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b1cdcd30c8a45a973d82efd2c14662ee894d89b2f56db36393fee21d28b9095d
MD5 1e60710c80ef0f397b41d206f98d919d
BLAKE2b-256 4afd694a4d8b49440c4e64fcf1d1ba3b3f9a7aa6ce51c3dc630d67736147da44

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.23-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25f44ee81e86c1bab368510214bf2ff76ef8f2ada40631bbc0438504cbb17d43
MD5 b1d7ca053ce52cc7cb0a4b7ff185cf63
BLAKE2b-256 03606269675f2f1ff80e2b5d399d0fda47f730dca045f116d06456671ff93da2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.23-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 561151886ee94fc6febd682d2f143ac9929f68aea7ae2664ebc8014ee93038b7
MD5 c20f4070632deda7adbfe1d2a5a94417
BLAKE2b-256 9f931476214099585abc120d3b1b37f3d039f7a94e08f6e8a4eb078a8e462590

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.23-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 081a07ed0ff2a30ecc98053abdb3f22e9849becf276b0058183741191f88eaa3
MD5 7d327b1a3ffd4f660f6db5e3d2c6c940
BLAKE2b-256 220391fa3c51678091ba13381e5e927d2cf94d01cb32c1f46a34695756ed1434

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.23-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 13ca789f0812f3c6b81fbd57a34842fa715f174c3753998a7de3f112e37006f7
MD5 301aefc78b10c23f0254562baf9d5387
BLAKE2b-256 701876a955a5f46a34f74787ca2718ade9e91d5ef484bb1d5b3be012bdd84176

See more details on using hashes here.

Provenance

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