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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.71-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.4 kB view details)

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

iptocc-3.3.71-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.71-cp310-abi3-macosx_11_0_arm64.whl (623.1 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.71-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.71.tar.gz.

File metadata

  • Download URL: iptocc-3.3.71.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.71.tar.gz
Algorithm Hash digest
SHA256 1bf62ba9841a0c1ab4b6d12f3d2caad8c1007b7aa0abe0c2927aa26e9cf27dfc
MD5 ebd86b19d9efb6c82cbd4dca7fd33ae7
BLAKE2b-256 d08fed03188207e3d5ea00d1ab11b4167ac3900bda6ec82dc14f581315073e2e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.71-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.71-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5dfa5c949e4fa9cd0789cef19414c637a850230bcc160dea00e3fe56878fcbbf
MD5 cfdfee8a566baf41ac2e7592a26f482d
BLAKE2b-256 6fe152d66bc0b404e5146da3c096d9cae3a2025c5af5b334db411b6ccb27318b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.71-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 59f3e090499a6d8be93bc3946775171dbee507f7e92a77f1e76fb90480408030
MD5 b1828a9efa9879ffba7b65cc007c99e0
BLAKE2b-256 58abc8960f82c7f13ccbed0e57caee80c685be4f86715841a57d86a0ef48c289

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.71-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2724c17036f4e967e29a03b7b0ef36692f276c3800ad013ba9173957040881c9
MD5 6580c6c0a29f4b071a7949a93ecd0986
BLAKE2b-256 ae58c7c532c8a7243a9664491cb4c28a7fb147bbfedcc6e07f06c151a590113f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.71-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44e2d8453d5aab298d331dc3a36298c3f0618c35201ca671a7081f2d076beab4
MD5 5c5a9fed5abc8ca33b9cb4a609a10d2d
BLAKE2b-256 e322becfd91c54a26975238125cc0f26e48a15e0c6742b38b8e0f0e24dd128af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.71-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 78d1bcf7aa3e35576194cda1a74c91623642c9ee23afbbe8d76c8359403e387c
MD5 7808f5d8b55d9c43229e94b2eba2605d
BLAKE2b-256 ad502df44d5bc23422b6f6ec62da69b763f8526a6ae25873ad0af3bc9b36007f

See more details on using hashes here.

Provenance

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