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.34.tar.gz (445.0 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.34-cp310-abi3-win_amd64.whl (513.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.34-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.1 kB view details)

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

iptocc-3.3.34-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.34-cp310-abi3-macosx_11_0_arm64.whl (621.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.34-cp310-abi3-macosx_10_12_x86_64.whl (615.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.34.tar.gz
  • Upload date:
  • Size: 445.0 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.34.tar.gz
Algorithm Hash digest
SHA256 7fe6fbdf079685f3fb2530ea8b8f42e8a193a2407a499ada2d684aa26f680a67
MD5 d452ebbeb845e64c6e2f5de419ac6e80
BLAKE2b-256 52114b670a968a74653e9c6053ad83d3852dfc5bcb025606f4c51a4e76b6792c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.34-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.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.34-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f9ac169a002db8b51be4c8376b0010936e6e8c761e68df179b5806451a55f9cc
MD5 c9a9f4e597558fa27df18514178a218e
BLAKE2b-256 7810b32ded6cd3fae32c7c9e382f64f4a441e033db2dab383eb66098a401edc0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.34-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03572d7058263f627823f61f125ed2e1958dfd187c1ab53d3064d176d094b677
MD5 3e298d9d1365aed1283a4f50b027b8aa
BLAKE2b-256 cc6c4ef47a02e8dad302088fb14d4444816c1ce6b1315856ae6895a910b6adf5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.34-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8070cc11ece477b012600463cb84920e0bbce6be7f697598e39e0ff72ccf0d78
MD5 903ff2179e5edb79e9312810ca7e15e4
BLAKE2b-256 efb10c6ad4d0b1028dcd2b34d3492eee7fd1fe1bc787f446c6b1a8f3d2ccda03

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.34-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28343dcda94f510a72726b09e6b6a07112431b05d0dbcd6272e5aa749bb4435a
MD5 36ea8aa7f819e60ec05776645d0a5824
BLAKE2b-256 17b173fe12ff6431b6b7036b0316bf427b783053f77fb971265f0485b1b994a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.34-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6a2f2c254cd7cf043fa0a630a9519e215f0ee44e7cd9bbc1664f59609ab8cf45
MD5 7b76535b8fd5025d4c9fb24799b9dafa
BLAKE2b-256 af961825133492e0fefb9c56f180a5c98b2c04e026e7a78d89559cb09fb61bb6

See more details on using hashes here.

Provenance

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