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.3.tar.gz (444.7 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.3-cp310-abi3-win_amd64.whl (514.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (622.8 kB view details)

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

iptocc-3.3.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.3-cp310-abi3-macosx_11_0_arm64.whl (619.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.3-cp310-abi3-macosx_10_12_x86_64.whl (614.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.3.tar.gz
  • Upload date:
  • Size: 444.7 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.3.tar.gz
Algorithm Hash digest
SHA256 94b5d922bb97d1213086fcf701a663104b05f2c8799c8b0dec79058c02ddb142
MD5 ec7655640cd69d4851ade0385aff2dad
BLAKE2b-256 729f77987c3e2126f43a02d5d368e344f426de9d7090382cacbf3fdf92750a5c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.4 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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c8b1027b40711e3f067025f4903b12c94c013146d4ef23cf7a1c6c4b1699e7f6
MD5 3ccc7e4c4c527bb42601877cda1bb9d5
BLAKE2b-256 b3a11276a9ac1db16028f26592e7ebebb1c9530631d8f0828e7ee3b03a90f657

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 110d2e3b5a2ef13c95233145ef6ae588b17dfbb2ff5773f2bed657c316e2d4de
MD5 0212e4e80bd27ae5ecc16ac71c242b2e
BLAKE2b-256 2fbaf630f2e75636b44299d1d5177dced77b122ea470613db9c014dd7528181b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 18408dc1c116aa4b4769a5066cc57e6c9c38f04d860322bc9bc1d808bdb3f49b
MD5 d1c3b41bf44a31be5fe266f06379d96a
BLAKE2b-256 b2da9e09f5c3c045b245eaa693179b851f8fc1f5f7c1d44aadc7907623929ce5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab2651bb9f9cffc910337c3e7fef8f527cf346ec118c5759c3c8b4cd8968a058
MD5 430c1cc83de4c951b107a5541364ce86
BLAKE2b-256 d27ebf14320548c432fdf2dda433564bff28c0abefcbf3aa619202ddbed8ae25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 37bc9f8f687beb12d6d48297f3e7a30e946e823856b66910c82c3ce4334ffefc
MD5 cee36aea39c79e6ba884eada0d3f6d22
BLAKE2b-256 b52937b779267c5524259679023bea425f6b79b9cb0c880c324abfa44539390d

See more details on using hashes here.

Provenance

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