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.68.tar.gz (445.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.68-cp310-abi3-win_amd64.whl (514.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.68-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.5 kB view details)

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

iptocc-3.3.68-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.68-cp310-abi3-macosx_11_0_arm64.whl (623.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.68-cp310-abi3-macosx_10_12_x86_64.whl (615.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.68.tar.gz
  • Upload date:
  • Size: 445.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.68.tar.gz
Algorithm Hash digest
SHA256 b7d65786492cb79d206cdb13ba3e5e81e9db4721bc1a2cbe301704afdaf49037
MD5 1744619df50f6676b5df94dc9f289552
BLAKE2b-256 9c412f722335b640ccc30c4e74ec47c967833a8351f50e546789d25933468110

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.68-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.7 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.68-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 11f173b3719c72cfe77c2bb55f3b1c2fb8845b2078e5ddd6d78adf1e3636f9e0
MD5 71c3281f13d93ca709be92ffdceb9cb8
BLAKE2b-256 b1b3beef1bdfea3d71ac7aae056ae038b7d514d889dc52ab2d01fa0ce525d6bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.68-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6edaf35f6cfec797007ab365b1b16d87d0ea11bf9b67cdc7653fe06a259599f
MD5 a74b2b9c22587452be119e161bf0b9e2
BLAKE2b-256 83aa66a2bdd44160a417bf08c30bd4a3baa8ad7ad09964ce60f810d13cc5755b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.68-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 051cc16490578844d0388df772f625934b55bb54435c1f09dc8915258e703e37
MD5 ecd94af95138843986a31051738451c0
BLAKE2b-256 28b522bb308bca6fcd9d4aa5f2df5611f363f1fcb9f49bbe5599b39b8b6b6a91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.68-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e65cd014f9b83e894a850fd2d98f7d15203a710fb7e4d1a9c965fad25f1f006
MD5 88e5d5cbf48b152f1e7566a0827570b8
BLAKE2b-256 ed77b7111ad9490ddb7ae08f4dac86f6a52a141cab19ad524d7f6b24ba970798

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.68-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 305b098490b982806219d89106ded034179ac74ee9edf94bcf00664957fb59bd
MD5 02f2c4700fd000dd40942abc3e2976ee
BLAKE2b-256 1e0385120887993ef36c62d695ef357fe5b6924998e22a10095cb6672e240d73

See more details on using hashes here.

Provenance

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