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.59.tar.gz (445.6 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.59-cp310-abi3-win_amd64.whl (514.5 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.59-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.2 kB view details)

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

iptocc-3.3.59-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.59-cp310-abi3-macosx_11_0_arm64.whl (622.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.59-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.59.tar.gz.

File metadata

  • Download URL: iptocc-3.3.59.tar.gz
  • Upload date:
  • Size: 445.6 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.59.tar.gz
Algorithm Hash digest
SHA256 3c187262f9f8e3351fb4c2119bd7871351bf5c8c857ac73c456b18a1b53e5521
MD5 a187c21c87e3a5bd1f6c9e54b69f05f5
BLAKE2b-256 ed7659a3612edd1416263692eb70b2303092006a3e59c8b5943a3ae56f4f8fe9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.59-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.5 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.59-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8c5a9e57987d36f481c10d908e25356c5a29b0d5b9ca8f2c59e6084dcaeeae38
MD5 e778a6e062f087cf985a6b8e4c12e72d
BLAKE2b-256 00ee93a8752063be0b095e272891d9ffe3db89e718ca02dc297821edef3a669d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.59-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b08aa763bae5658c3e1f26bc4a76bf8581c74f673a155d64d266949b9c410e7f
MD5 dad9c8efcfc2fcb6075cebf113c563ae
BLAKE2b-256 a56284046123ee6f7f136566d3ee4d32e1fcb27cecdae988fc57b2a334147942

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.59-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 90ff10ac2f002a96f42a9ac6ea35f28a91277b8cc1ac6f6ff5c7aa500d3c801a
MD5 373b5a1b2334d19e4039bb25d000abe8
BLAKE2b-256 fe6424e88ff115fedf19ee30214d9ac17a2f3e37a9243c2204f49da97abb87e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.59-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 efa5e5a058bb2533059e764e86c1a13bbb57d85ece5e9eefda4fa50cf8c073e2
MD5 8ab9fcdf2067d2f71bf1d15312f575d2
BLAKE2b-256 60875f491491d77ff961231df56caf3e553cf2d36b6be7464fec68b8243ec64c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.59-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e1d4b42392b8f453f1599f00a2cde87220f6d4e33915ad81cf60e52ba01844e1
MD5 a1434f60a78ab83ff858759c73c0fcbb
BLAKE2b-256 1b37dfa78a20b762b94be3cd347f852d8e58112ed2a59886d22beb81de427b88

See more details on using hashes here.

Provenance

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