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.88.tar.gz (446.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.88-cp310-abi3-win_amd64.whl (515.9 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.88-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.8 kB view details)

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

iptocc-3.3.88-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.88-cp310-abi3-macosx_10_12_x86_64.whl (618.4 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.88.tar.gz
  • Upload date:
  • Size: 446.0 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.88.tar.gz
Algorithm Hash digest
SHA256 2c0f1822afce5b7d75fa96f57c5dba2bfbc74c4255cbc2d4a3ff9f796ad3fc39
MD5 191621f3464fe213a7d418c0e44dca68
BLAKE2b-256 311659eb55974bb1449a6f23dfa1e2a7e2a8bd8fa1c4090ea47d58dce32ae3f1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.88-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.9 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.88-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5ae207dfbb697d93bc9447ecb62e31f3d105f71ec3476c64b81e779e42a57163
MD5 2359d43ebed8abc1a582acb52de3c8fe
BLAKE2b-256 8933bfe2bd6e4e69579c5c709d8c664ac76e00b4c4e0500289a71e4027d6d222

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.88-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c9e371f86a124d95ca7c11fb98cfed9a771a5f090848d38fe450ab829e11d31
MD5 253d4617180903dc0a6523d7fb42c359
BLAKE2b-256 db32a0e7e3c9e23dae17a18e6d4afb094c7f44a31eccf3fd85136ce9857176fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.88-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d69ca6668bc244ce7ead650043f1b688084bb6e1d59a2aa65a457233dc389ef6
MD5 398dac42af3c0d108f6ef35b56f76289
BLAKE2b-256 f8aa89ec0111f722ccb14b9dffc2a0dfe419d1f348adeda4b270ea4fe9a85415

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.88-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7389fb2612a63be1f978a6baef22e83fb0c3d83ad2435e5e6d0ae89dec26085
MD5 ea59816e6437f5be01aa5ccd28df809e
BLAKE2b-256 cd27948b12aab6b9330bde0ce208432a9f65ceeb88a7f654ba8d2653b2b095b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.88-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 560ea580bb61e7c3b0081d66f2663d7411add17a57b10fb70706a20659b35641
MD5 c15bbc61d6a6b5f15080997ebd124d91
BLAKE2b-256 255c45a9b657a512fb2b8af96e914c053492069968006e8429e827e2881e6d7f

See more details on using hashes here.

Provenance

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