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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.56-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.0 kB view details)

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

iptocc-3.3.56-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.56-cp310-abi3-macosx_11_0_arm64.whl (622.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.56-cp310-abi3-macosx_10_12_x86_64.whl (615.2 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.56.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.56.tar.gz
Algorithm Hash digest
SHA256 d58e9d908007dee317f6f3cd139220dd07444c2174878aa68d2efb0b07ca2cbe
MD5 4711d0fe9bc4ad3f0e95dc6e8af057e6
BLAKE2b-256 4e86248683851c12d2c6a3c864b56682092499dcee24dd637d55b49902b8da94

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.56-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.5 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.56-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a6d2c84d6ed993efe21bf0b7993c848bb7a8c0c009b1c7276d33cd8f0e703a27
MD5 ea752f504c8c5a8f9bb23a53a0b1e81d
BLAKE2b-256 e24a309e5c021c6989b662a1f860d1f8d421ca7e6893234bfa4b8115a20373e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.56-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f0fc1f0d319b76bac68175ed3948a123abdec01975f9b28135ada025434319c
MD5 f9c4d3d624cc9eb484409381e16a7e97
BLAKE2b-256 ab0fc3e73022b0d8aeca977504df372bf698f165f6fa559a5aeece56e498ab09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.56-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08482281f51e4dc1540644e0aafac3fe0aef9da0b1b677dacff7ef0006d2d9ba
MD5 196329e2237fa2620dd60c2d15c9d801
BLAKE2b-256 8d2f6f57a6b353ce3994487d72aef6c02258d58dd1b66399cff304a6098a4ce7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.56-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec73299082e7340302c640a5c879ebf4f0c887f86c80d81ba03d53756e94d955
MD5 5a1169f469877eaca77e6f1200c95675
BLAKE2b-256 0e3f958be4c0b5e34d5d5cdeef942c195caaa43155a8b415503a7020ef63c911

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.56-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ebe6a434a04c3d226cc2e8eed91b110b8ae08ba91f23bffeb3159f13f6653dd4
MD5 eeb01e73bb7c11aaedba2f1622439938
BLAKE2b-256 1e8cb8404e7f7af533c868089441318052714a1dbb17ad31fbbc1935802e0045

See more details on using hashes here.

Provenance

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