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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.57-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.57-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.57-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.57.tar.gz.

File metadata

  • Download URL: iptocc-3.3.57.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.57.tar.gz
Algorithm Hash digest
SHA256 7e9b51c2f3b7e3a3083713a509a6be916d5ba2e2e4131779797eb4c97b021efc
MD5 b95ae5967da3de0b18eb2342ff5baf55
BLAKE2b-256 c2add1fe0921df99edb938cedabce6a47c1fb322f8f6c01d675b0663c68b4c0d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.57-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.4 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.57-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c0be520165dc706cf77412221c06163c1ca4232a1870fa863f5fe91cc4dc9bf5
MD5 83edd5631a14ef8279345272bd722db1
BLAKE2b-256 96ea9c5b522679c1c45f76b4a34a89b857196a478239ad72b2b1133c0199104f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.57-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db04ed0d412f88e69fe64857246d1c7115e546b134ed7c20231541e447561297
MD5 69f115a517c003b554d2a01cc344d779
BLAKE2b-256 1450934588563bbf936b63a43fbba83691eaf0f70d78ab6fa085cd14282f0718

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.57-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3536b33fef64f13215c4eaa1d46e92783cb0fc634ad41ce28e9c57df620c42b2
MD5 c77dba7049c613207c3f451b0e4ee53a
BLAKE2b-256 dd4580834e0c08c90011cc41b5ff5d10a509ae28e532fd43b41d286c047c59b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.57-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37df7b91821160edec27244d570328262e4ca7c21e8bc351f9b47c6e8e48d17d
MD5 f7d8269c0c30a3e14678373fcfd57287
BLAKE2b-256 60482dc38ab0989a83dcc80e24303d748a04da1eb9bb652e8efe007ebf7f3898

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.57-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 720ae90d0db58979675d592316994b3aae9d290d48e68ff5813e2354445ceaa0
MD5 e8a21a772ae92a830eca1e86c38e14f4
BLAKE2b-256 ea101aadfd5a06c1699aa16a0e5b2284c42e5fb7a4e36275645122238bb54c8e

See more details on using hashes here.

Provenance

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