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.51.tar.gz (445.5 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.51-cp310-abi3-win_amd64.whl (514.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.51-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.7 kB view details)

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

iptocc-3.3.51-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.51-cp310-abi3-macosx_11_0_arm64.whl (622.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.51-cp310-abi3-macosx_10_12_x86_64.whl (614.9 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.51.tar.gz
  • Upload date:
  • Size: 445.5 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.51.tar.gz
Algorithm Hash digest
SHA256 84a77d25d82a77500960b1d8c2c4a742b7216e523dc3782a5b464c93efbfd121
MD5 c092b548a88dded271a83b793081cb07
BLAKE2b-256 562064a24733b1d8efc5853dae95e066e0fb0b2e39acadd06ec1fbd63d6bcee0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.51-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.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.51-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dea7a4d7b1f40908d8c5cc07e7c41c7552641fe13d5407a8bb94cf2d408a3926
MD5 2964e3eaf278bb5d80c98ad6eff4d9e8
BLAKE2b-256 5f6be7e3eb4bb9e79005bc3eae8356a354fdf12f926bbc937f62b0e36387cb2c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.51-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5ca9b786ee367d01c790cdf61ca2c9de2acac5106fe776aaeaaf22084e6235bc
MD5 4ae3975d49e5df0bb31f11738b30aeb1
BLAKE2b-256 7c9d74ddaa384ceff71e2f532c027d27ce1d48083a84a53117e7cb306294fbe3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.51-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f9769abe57181f10b72f10bad98bab2dc2fd70f07eea33d9b5fdda8912427e45
MD5 4753aee2ea0ffa55f33e001949999ca0
BLAKE2b-256 25b4181936fd3140dfc4b3b514d830626269f384dd5f6d9fae9773799f955253

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.51-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eadaee20f187443b40e2899eaad7bf91078557ab0360712cef3b815419173c5d
MD5 9b9ea862ed2a30aed435d2ac1b01b81f
BLAKE2b-256 dc0d9f03e37bedcffe2e7ca4f25f98a789cec715f23d835bde07c29a346a1792

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.51-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1a2dffa5bf7082e5f036c2972021b510befef39956625bb61da2fb1a800316d0
MD5 e3797aa5d237b5e3bb1a9b0dd99e2c79
BLAKE2b-256 573da2201917526117ba82973986307541ec775292c36caee7a3abc682507a91

See more details on using hashes here.

Provenance

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