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


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.1.tar.gz (444.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.1-cp310-abi3-win_amd64.whl (514.3 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (622.8 kB view details)

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

iptocc-3.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.1-cp310-abi3-macosx_11_0_arm64.whl (619.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.1-cp310-abi3-macosx_10_12_x86_64.whl (614.2 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.1.tar.gz
  • Upload date:
  • Size: 444.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.1.tar.gz
Algorithm Hash digest
SHA256 40d98be1e0940ae98f29f57ea1d22700d29db4ada66db437b885db5f51be1d3e
MD5 0c92457efc785a79704c183b5881933e
BLAKE2b-256 b513ea709728fcdceaef5680983134fb8631401d73590bff49ca7486cfee3a3d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.1-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.3 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.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2c870894d541d42b559bca60fa94a0acb497c4596dcf33092f4231ad2d0db9c9
MD5 9a3dff97f98c7659c6e44b68eabe65f6
BLAKE2b-256 df7f5998771d583bb23b9d1dd47854797bef998bac8211cb4697d7975ed4f5d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 deb4d074e66cfe0176f90ee9c908ed7d54878bb938f3fe696e9b5488ea430f9b
MD5 a900ffb45de6f1ec9a083f33aa081d34
BLAKE2b-256 47280259b3b17a3c47f5783ad2b03b89b49327b37384c88acca3655f58710022

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b624504d3c707d16c857f00166506f9aa93ac0d60a2ea40f0a9710bb468b5390
MD5 daef6f7f08d4bc07174d059bd65ec3ca
BLAKE2b-256 ddef8bed0a9c12f2d45bcb6f03612c0811a707f1f130c243a543ebe47f1a9a67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1634cccdb5daadff4aa0d1814ef59f124ac424d81880052aa070975c7085534
MD5 015a6f3eb6c5470bbc1f38d07b17f368
BLAKE2b-256 c70c5a57bd62f81af42aa12518140d7e60b24ce15a1804dfd27e2170ded44988

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aa84611f08dd2be1db9c86882d1389a7a6e309ac9fb3e3fb3dda1463ad12e38a
MD5 2b2ff4f415e23a9470d0efba96768b37
BLAKE2b-256 75edff1bf3997302dd0a4a3b147be1f54e9b1023c1e263c839661ea04fc0604e

See more details on using hashes here.

Provenance

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