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.87.tar.gz (446.1 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.87-cp310-abi3-win_amd64.whl (515.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.87-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.7 kB view details)

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

iptocc-3.3.87-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.87-cp310-abi3-macosx_11_0_arm64.whl (619.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.87-cp310-abi3-macosx_10_12_x86_64.whl (618.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.87.tar.gz
  • Upload date:
  • Size: 446.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for iptocc-3.3.87.tar.gz
Algorithm Hash digest
SHA256 cc22b57aad4c010c62f242a1b76a520c941bf14ec3675a6d6e760d4403aa90a0
MD5 3fddf70211bf60fc1e44a0a3867233be
BLAKE2b-256 995ccceba171d5a48519a2a81eb64386c4c85e54855451fca3d7f7096490b785

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.87-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.8 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for iptocc-3.3.87-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 85bd975493dfc3f64f9cb43e06cdfc216717c14eb75d3b6bdf2d78cb0962b484
MD5 1f7842ba0c9f38d35272261caf113400
BLAKE2b-256 ffcd2ad4ff6e74896ef59239491e43a588c51243945031a3a96757c48279a3a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.87-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 44b74f3eb3e12c31d1e4a6205ff46e21d33bd3fd3e7c12a43c6c9b4be1f5290c
MD5 43915a0e215a2b149eb31fc2a8db08ef
BLAKE2b-256 23e6e3a43cd923ad906084d27f63713400dbacbc7b36ec77e7455ce50766da06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.87-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec89fb22a95f4724e1f0c05dc4ca25d37e4d2b5ee2f1523d5618b86649bb8c76
MD5 5ce60ef93ebea071253bee7549dae3a6
BLAKE2b-256 c7addc3af8187ddb6a0a35a1389ca149b1aa232b6dc42cb5d800f4b34eece6c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.87-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d156b245ead66963e0aff8d0d57ae06be785abb9b43817f83c19052aac718da1
MD5 7923f6e3a78c00bcd006329a73649e97
BLAKE2b-256 9dbceac0bce476ca3274ab0dd6928c5e970492e34bf8e95ba2b0458f704da38d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.87-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5742a18f1cd2ffd685e2cfac403cbe3108a721f349cc23984c49c9c384c2fac7
MD5 3f11adfc254784b1209f74cb9ae076cc
BLAKE2b-256 b8fb20e0f39ffc324cd54d0f4c69198cf96d88795fbc386f213dc01fe1e211a6

See more details on using hashes here.

Provenance

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