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.21.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.21-cp310-abi3-win_amd64.whl (513.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.4 kB view details)

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

iptocc-3.3.21-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (624.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.21-cp310-abi3-macosx_11_0_arm64.whl (620.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.21-cp310-abi3-macosx_10_12_x86_64.whl (614.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.21.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.21.tar.gz
Algorithm Hash digest
SHA256 b4e3575f1100da593b8fc9a4a5425fdb272a18e38b21f431aeec3f072e916076
MD5 88e38e4e9800abb21ae69607cb732109
BLAKE2b-256 1b436d4de2fe197184d8dbc7af288ee741afc1263ccfc5216a67d0761d38ee97

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.21-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.2 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.21-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d75bded7c2891f02f8918aad988bdc5f80bdebf3715df92a81a6b2f01def060d
MD5 916e94eb0a97fa6a0f1dabe314a12675
BLAKE2b-256 6e552c3e523c845ad052200cde74d4be6059eefe252d1eacc99f84742ee24175

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f63078c740c321622f12a9f7de000ef7f61226cd21f19e23504d9413160e38f
MD5 8e91830c01aa1a4653c8135c0808e278
BLAKE2b-256 113e3cb4d60e77453c927e6a5069db8fbf1cd31f17ad2a1afdf181baacb9ebd2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.21-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8a8522b8fdb65748c826edd7c49921944c887c15338eb2009197bfea3115b37
MD5 469e4b3fb04ea72469dfe43f9862d542
BLAKE2b-256 bed7570f3c7dca0df07371cef4e0218fa710a96a41c5fe1238ba5030bf642579

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.21-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7dead902576a741be2fb539c3023bd7b41e2b9d9bdccaaffe13e14bb02c003d5
MD5 3145e9a74e223753b6653a4f3c03e36e
BLAKE2b-256 1ba2c23d40727e30bf0c3d295acee26efa72f21816af3505b7cc3ed621445b19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.21-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4e8f718a64496b722d27218f9420f9ff83c326b654ca4207c93949ddb034d458
MD5 89f28b7b37411d74478ae68f2cda8942
BLAKE2b-256 24ecd267b4e612e1c3076df4e79a023ec96e3f9cc02fe861e7db1acd9f81229e

See more details on using hashes here.

Provenance

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