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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.53-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.8 kB view details)

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

iptocc-3.3.53-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.53-cp310-abi3-macosx_11_0_arm64.whl (622.6 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.53-cp310-abi3-macosx_10_12_x86_64.whl (615.0 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.53.tar.gz
  • Upload date:
  • Size: 445.6 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.53.tar.gz
Algorithm Hash digest
SHA256 fd74703d7bff31b9ccdb72ad24c6a347a132a6b21dc53ee8cbc801ec262715c0
MD5 947d7cd21141db9d4df7c03dece55353
BLAKE2b-256 add0e9cd7db0d4f7b90c3ec02cb5a8a7b4487d27dd8fe7a31af62c23637846e6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.53-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.53-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e1e1d95c261282575532d47908ba843dceb80190d33a83985b3e0ea0c5dfef52
MD5 ae26e7bc1b1f4fb2b7dcb2ee6aa529af
BLAKE2b-256 1607e64a5cbb4e029354dbd29b59dbdca71206f23d505a923375edd3fd302be4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.53-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48c0c86c11822b4825bb820b74b94d0865167a0c817e137da1bde4ed29ea3739
MD5 f2634fac7a43dc35da5a9e5e143abecd
BLAKE2b-256 ade972b2b9e24f3a8205655ee3576717b5f5b5b9e9496256744b023256a66d12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.53-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b3debe7644d9db1897bcc77e30e57b799cd092de53bdedd39f23ee5cab3133d
MD5 f1a1729a85ba48d798ad403c0f4849fe
BLAKE2b-256 80a09f03c52efe0701e7baeb8b11c2c9cc4e1c1b3343b9714996cfdb9b087337

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.53-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa4c85d7aaf367e6836f091d65f764b8161468b9a1183eb3ee0ee77e1851f3bb
MD5 ea15dca502bfb0779a520438b1e2de17
BLAKE2b-256 ea67344f7ffabfcc7a6812d03cd65fa05f850d537ff8c6ddc0a62039f0b3edcc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.53-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 43872afc6d281705593ce3984ac6e35cfe568c3798cd7ce4283be366ad404a16
MD5 bbfc664e06aaf6d407131e8281e88029
BLAKE2b-256 20682b3127370be0bbfbf569f5e14eee9ce198ed860acc8f60da85f347e9e78e

See more details on using hashes here.

Provenance

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