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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.69-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.5 kB view details)

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

iptocc-3.3.69-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.69-cp310-abi3-macosx_11_0_arm64.whl (623.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.69-cp310-abi3-macosx_10_12_x86_64.whl (615.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.69.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.69.tar.gz
Algorithm Hash digest
SHA256 249a7d82250873b26839f081479a6687c71b1ea9724e4d43ef49f51f9386fdc3
MD5 737c73dabcf549d2cc2784b8fba3b107
BLAKE2b-256 b4302a794d06e4ddb662e0f5009e6793aea1e38cb3e907a790037330fa78d580

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.69-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.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.69-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dfbecc64da801b92185d9f63a839561dbc74d83ef30437910a9af1c5093f949d
MD5 4c0975bb332f5aeff0413711319f87af
BLAKE2b-256 318874fe249f7c6a42afe90c5a8b08ce69eacbf1ab319587fd42053bc6702ac1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.69-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c23eec59ac961b0966b119b54188696b66c32f0323568ca032c099073ffc3c4c
MD5 cb56df724a674c4fe6f3247198a55a42
BLAKE2b-256 1cc5dcc1f09356d9ea67bb72152fdd0b5d2923c345b7c5f82bf89c70499bcbe0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.69-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b88d24c7515cd21d3d39c757cef1449d44791ab9e01f4a4e1123c2c5d3d6916
MD5 69a5a0fca8942c58f0a82a97ed035201
BLAKE2b-256 22e7bf3ab2a65b70960b99997acc68502f980600ad3db87122d05f06db19659f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.69-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4423365246522877a811aeecbe34853a2754b167e1178c13b9a0f59bbdf528c4
MD5 75f19bb53492b0fba9ded2f0ddb9d3fe
BLAKE2b-256 12ef5b3b6f18c25d7b98d5d9194ba5f8f333128607ecb20289b3aa4488e103a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.69-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5b96539a4052e3874412a1acadd84b09cf47b5e94c1283a0dd7f7f9a6daa246c
MD5 870cf9b3bd59b2109aa15614b9102e46
BLAKE2b-256 318db0f9345200a9693428e4c6fd92b4e3d4a393f5bdd09a1ad4f89e839427e0

See more details on using hashes here.

Provenance

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