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.70.tar.gz (445.7 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.70-cp310-abi3-win_amd64.whl (514.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.70-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.70-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.70-cp310-abi3-macosx_11_0_arm64.whl (623.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.70-cp310-abi3-macosx_10_12_x86_64.whl (615.6 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.70.tar.gz
  • Upload date:
  • Size: 445.7 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.70.tar.gz
Algorithm Hash digest
SHA256 0c5c880b54ca65a1499c8cec9c40301692c811a085a724145a0b9bd2cce33dc9
MD5 6cd2d52adac3a4867e873f7fd61472f4
BLAKE2b-256 42ba1db2ba5bd5388bcb912274096c73a62c697169cc7da2454612bd236c62bd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.70-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.70-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 71622e81b921b1cb0240b4900784b35b795852e8b88753422f950ab483863925
MD5 be82578b2632e999e4a69bbd05c902b9
BLAKE2b-256 f6acac28c97c2bcf0716e9bfc383ee2b7e1f3c9ffadfacb0de0a46e71b424645

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.70-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d75d20060f92fd9b919c462fa298aa59ceafa957db5b0081b401839c31f816b7
MD5 3610804eb33852b953f6a460aae11caf
BLAKE2b-256 206733b0deaa0751cb4425e2998f36b6809becd318adddc1093ac1c3d6fe7a3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.70-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4c4bd6fee15a6506740d4af7b97b697bc404a6a0c6b7a6ecbb27ea55e6d72c9a
MD5 a121c12cd97fc5429105f0c90c514e5a
BLAKE2b-256 030ff1d49af2d71bbc800e2010bf8dd49d5b29752c896bbb10e6dc60d953704e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.70-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a7e676b9fa4714f7ffa1b510c8eb6d4835c2c6de13d1fab9b6d0b8d5b677498
MD5 738682186a1651f21bfa89d6ae0f184b
BLAKE2b-256 62bc5cdfd226632cf6a6fcfb1b6ada40329590b8d301a5b054c48d1ee80f4f48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.70-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cd9703ce48855f4f607e66ed38c77bb911ba563a55995b7be7187dbb8d5604c8
MD5 b5b11aeee754501f2274ccdca676bf17
BLAKE2b-256 2aa13387a3467ebc593a119db21a88e8ed9df63298096ccfaed39120c540b18f

See more details on using hashes here.

Provenance

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