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.64.tar.gz (445.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.64-cp310-abi3-win_amd64.whl (514.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.64-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.6 kB view details)

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

iptocc-3.3.64-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.64-cp310-abi3-macosx_11_0_arm64.whl (623.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.64-cp310-abi3-macosx_10_12_x86_64.whl (615.4 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.64.tar.gz
  • Upload date:
  • Size: 445.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.64.tar.gz
Algorithm Hash digest
SHA256 686cebe9e429e68af8d2e13779b7892f458613ceee0336d5d482f5fd2fd90f7d
MD5 6eafe3b392d308f087380a6e34e5d836
BLAKE2b-256 3219da08b4fe33aeb776261da0a15cd52d701e1f80985b7d1b121a7889f5e763

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.64-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.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.64-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6d93d17062c058a772c7bd37ee698dc26c84bef6ba43c84fc25d786e33e85327
MD5 d4b3565f821db9c0153a8cc8e5d9b107
BLAKE2b-256 cea8ba13532ca8f6d27a22ce0a42882d03676f428652391d1a5f508dadbbbe86

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.64-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd966c88d3639894ee1bb89d5bcc51065fd633062d5697f0c693f7d5a05619db
MD5 ab093b89728c4821ce066914ec564308
BLAKE2b-256 894b91b308e86c8604a66d34b4b399744398e018ec1c9bf186293c7590b9e016

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.64-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9e8e97e0eb29119d28c14a6b55e87fc2e487ea7bf1d7b4676f6d38e47c6fc229
MD5 e6678f25db2478650e2b53861184c3e1
BLAKE2b-256 1bf54f50ee7d82f40b42775bff1a13a178424b19574d1d816b77f0a502d789ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.64-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14b7fba7a1f598edb29b86e25cb20d89173f9781db2e3e82290d079b4f7a4550
MD5 7cfc2f260656793a3bf5d11e88bd1b54
BLAKE2b-256 dcaf3ac91abda2d8ef996fd5e193c5b4f7c3ed10a369b8c4b32b43c92edab7a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.64-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ed126baf606497196165241bffb65d15e7a12016a7549cfa04d3e9e57d2734c2
MD5 af3c47c169feedb5138a685ed28fd4d0
BLAKE2b-256 da73781ab2d3342e95ad979aa18c4d5075d451c6cf35928e127cc6d7b3b03797

See more details on using hashes here.

Provenance

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