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.40.tar.gz (445.2 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.40-cp310-abi3-win_amd64.whl (513.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.40-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.2 kB view details)

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

iptocc-3.3.40-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.40-cp310-abi3-macosx_11_0_arm64.whl (621.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.40-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.40.tar.gz.

File metadata

  • Download URL: iptocc-3.3.40.tar.gz
  • Upload date:
  • Size: 445.2 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.40.tar.gz
Algorithm Hash digest
SHA256 f2ae2dc52e6cc254b95bf0806c65f503f4f0b53f57928578da1dcb5ed615fda2
MD5 2612ef723d3f9c73f56f64b19bb015c2
BLAKE2b-256 f1ea27c49de8dea5d459715de5504023a623a05ab409a90653ab0796454d0059

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.40-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.7 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.40-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fc5f56d5d6c949c39a24f44a419ac2b4221965127e37726fd683cadd24c78751
MD5 8707efe939baee202c06c33d31ddf4db
BLAKE2b-256 f92430aab2f3856465f74fd330aaa8a0ad80b24bd235303d7de7d2333a9064d5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.40-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25f3d2849dca4fbd6779bb4d80980e70dee4a692ad29a43da836b7b51c8ed129
MD5 b026dcd0bb44c3b0e3190e39ef0b9185
BLAKE2b-256 6bdff5935f9f87bc259a26a4160314f1f395766a805560211fe52fed4630d4f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.40-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fdd42b19a8923e38bdd840cdeedb7f7f60ddc56017348a550feab51e799414ab
MD5 c1a9f2ffb1dcb95e3dcccb7e7121a554
BLAKE2b-256 6193c48bbe8eebed49963072f8a8629396e281f8001b0711cf3d924d11e1e29d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.40-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81078f0e58c8df30178f1ce25da21a9d7eb077b87529f20af8fd8cf5f79fe013
MD5 6b969e40891e5333885b141e99b07437
BLAKE2b-256 3105425eb6201529ab1b615cc8c2cd57a3db99a737a46890fe5131f663d9b94c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.40-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 06c1cbf96d0f23e6c0b8cdf949dc17ba50e34eaefd0355d89d7d5c882f544ee4
MD5 2dbbbb0cff586f66125cac38702976f5
BLAKE2b-256 ab04cbce65515b04fb413e8455e970d4331f48415ca18545d7c5c6259c3636b5

See more details on using hashes here.

Provenance

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