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.9.tar.gz (444.8 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.9-cp310-abi3-win_amd64.whl (514.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.9-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (623.1 kB view details)

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

iptocc-3.3.9-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.9-cp310-abi3-macosx_11_0_arm64.whl (620.1 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.9-cp310-abi3-macosx_10_12_x86_64.whl (614.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.9.tar.gz
  • Upload date:
  • Size: 444.8 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.9.tar.gz
Algorithm Hash digest
SHA256 adf6db6e72683a506f1cb2f310c62b124f281311fb3d634a78f007810e3bd61e
MD5 8329111b9b731e7f10599cfe344eaeda
BLAKE2b-256 02fdce2c1a92660e73fd25b2b9ed2769ea56f505687eeba8db5b9eca9b17b519

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.9-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.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.9-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 eb3ef18c132d85faf5673886be4cb6d59bda3323820b118da0fd970f65ca8aa3
MD5 9224edfb8b1ac5baa1d3e78d029d907f
BLAKE2b-256 710e6fc7bd0a9af3079ddb1779824742a275e52881e5778886d14f2686db1813

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.9-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9cf1d1523de82605a0f73b7d3f0f4fa16621652d6f3b1ca91d4dcdb57350790
MD5 2f0d66685f065ad0049fd388665be36c
BLAKE2b-256 d9606e0849f515c6ebdb3e2b635073eeb6857b550c30a1402d74845d2f7a57a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.9-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0c23b1aa0f173797c102f8429f4c232fb825e2ddea9c96d6ec7f4aa45722a2d
MD5 dbc2e69fb8606d9459e642ee770f551a
BLAKE2b-256 fd613deb5417ecdeb6c41f46c3fbc45ccc84eaa91f7fb520b1bfe76d55f80288

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.9-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 67f8a5b512a80563aa272b2bada4721fa01a3920a97c905d3fc81b86c6fcadef
MD5 767155dbac533eb11558feb88d36cb64
BLAKE2b-256 ab3fe16b5b3e5edb3e9ba6e51fcaaf00410c4e399f6056a7ef3d24e61236cf5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.9-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 06ef5108d04c4ba1226f8c54b82c479898f7efbab41a2b418a107a2cf8843c72
MD5 10d6d2f6efb66bb8c0f87a7c15b1d8af
BLAKE2b-256 24dd429c8111b857cbdd3eae946e3808e122b0a2dbb406fd9083ba73bae28198

See more details on using hashes here.

Provenance

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