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.74.tar.gz (445.9 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.74-cp310-abi3-win_amd64.whl (514.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.74-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.5 kB view details)

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

iptocc-3.3.74-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.74-cp310-abi3-macosx_11_0_arm64.whl (623.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.74-cp310-abi3-macosx_10_12_x86_64.whl (615.7 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.74.tar.gz
  • Upload date:
  • Size: 445.9 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.74.tar.gz
Algorithm Hash digest
SHA256 6b54de7501e6ad15908a0cb4bed1ea39c220ab47ba973e65e1faf266aef3201f
MD5 1fd36316b0b856ea4da1c5798796f4d6
BLAKE2b-256 9e1f2d0b5512f2dd6da41852515b6540ab9d200c572e54ea59394b8c46ce03ab

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.74-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.8 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.74-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 674a6b86eb7b07ca44cc4ccfb317c7e273c28fb4d0414582390192c976ac9dea
MD5 99865de5025b42cbcfdc6ce96412f4c7
BLAKE2b-256 78b4f6ca247aa2e1306a124dfa6f5220a99907d2cf3f6754ea282b27233c3f18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.74-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1043271fff70e8b2f6b45bd057e035a791661dd840fe710efabb9d3548f8c86b
MD5 3a441eb18e73337579e9310e724c576a
BLAKE2b-256 ff5f8b5344625917acd601a06a71653c302b41c7de85262ebba5817e0df42251

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.74-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b281eed492f253f29781d45b183803c573dbd6ecc7b8d46192fabce1aed5c6de
MD5 057cd9c6e4736de6a9ae89832f1640a5
BLAKE2b-256 61992a81511912abf4b880d4dcf8144e446f5e92f6671537f97ba13f462e67a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.74-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec53d5cf9d76713bd5c9cdabd92d7e66a5af91a9e915bd2234faebd092733342
MD5 6a441a58937ae115996966149679e666
BLAKE2b-256 a580e46f17a4b8f2aff218cfc0046f7222ce5b424307acf5b67e444b6b84d9a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.74-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d51d251646808f7faa41d3de5042792ff4d33f6e3aef790d5a73f5a97fb48243
MD5 574a2fbf198814d87b523fdfcc543157
BLAKE2b-256 47626f10e09fd8e8092e1b4567b7baa498cdce5888c1cfe94e0cdb0ff89252ee

See more details on using hashes here.

Provenance

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