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.49.tar.gz (445.4 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.49-cp310-abi3-win_amd64.whl (514.1 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.49-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.49-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.49-cp310-abi3-macosx_11_0_arm64.whl (622.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.49-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.49.tar.gz.

File metadata

  • Download URL: iptocc-3.3.49.tar.gz
  • Upload date:
  • Size: 445.4 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.49.tar.gz
Algorithm Hash digest
SHA256 57dee6220bc19031101e60427463f46ffb6427f925c9f6e03a427204647306dc
MD5 b8d748eca9c2fa8f5d39e9f44dabbb79
BLAKE2b-256 ded2e51de958c2f9841cbf93ecc66106f91f8b4adf99c2f2dd3bfd959fe1987c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.49-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.1 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.49-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9a22780ed32c760d66b7df0de655379184ddac057c974ba0b330988604ece92a
MD5 c980ebdfc54aae05608ff1e059baa9d9
BLAKE2b-256 8a2f0e81b7b57d6a2daa3c29bcbe6c5cfa8aaf25e3e6ad6371fd152e29b7f035

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.49-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c9d38db19df4999bd43e325fdd28be7748f6ec64e81942efbce841d26e3461e
MD5 051555945694307f0aeaac2d122d82df
BLAKE2b-256 d7d7af9f7b47b04829c466548f5fd0e6965b7d1669319b12fb9bffc8b3a93c1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.49-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f299be2918683bc7714f9701d78c3fbddee60c52c4e9701066ac8f842dc6731e
MD5 40c157223c3250250051e678b6c7959f
BLAKE2b-256 6730a457deee5d6ecb5db25725b93abae5d7dbfc3e4345bbf9e28f15f8b7c3b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.49-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8349b00616c84b3439e6dd62b55249f940835a75a0656a32585c6e021b272218
MD5 0e8adab02a1e67962644f823e445775d
BLAKE2b-256 b6174137ba1a9993d030a1795ea4c0305dcd21ba2d2ea42e1aea250d466a323f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.49-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 43a3317261338694448740561a5042f357d06463f8f41330eec8ae5419b5b119
MD5 f601c07c45e507b0246d9469ce561521
BLAKE2b-256 4ef580ee85a08cd98cd6f9f708eb6dbdc9255287d2101b2aadb2675801397841

See more details on using hashes here.

Provenance

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