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.30.tar.gz (444.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.30-cp310-abi3-win_amd64.whl (513.3 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.30-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.5 kB view details)

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

iptocc-3.3.30-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.30-cp310-abi3-macosx_11_0_arm64.whl (620.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.30-cp310-abi3-macosx_10_12_x86_64.whl (614.9 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.30.tar.gz
  • Upload date:
  • Size: 444.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.30.tar.gz
Algorithm Hash digest
SHA256 4102c22f4d44c38fbf78dac90cf69f441ab761d8f867d81c36c75605307951af
MD5 37e68f9697b3123f281fe6bf4e9f48d5
BLAKE2b-256 57315e2606274ae2812408899dd84f82778f2092a71f8a823dc053d903e5c409

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.30-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.3 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.30-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d2940d2c4f03ea983cd02a2ac47c1e8b5269ecce591cda8ae65a343a276c8ed2
MD5 cce4cdf724892bbf5908ba9971ad5776
BLAKE2b-256 37aeabde9c29d22e85abe08801a94243225e041de3b12a2a24e6aca8184924fe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.30-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b72a35afad9ea26af1b81a0150bad3a2976e8f668dab0f79060b6cdb846752e
MD5 c662f8c986f9fdcf8ce18ba91d6f66d3
BLAKE2b-256 84c1aed71589b6b2dc2bcb99c7606ae9a8260e8f3784d47b96c9a121e6504fde

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.30-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 294865bc9b9d4a1f0bc60793cad864de1d065dbece7803b8360c513a2376e1a1
MD5 688c70d1739d45bda5c082043b2caf65
BLAKE2b-256 e33819c432885a2f5a163106bfd64ab1833d01a0d7adbcf5af7d035728c3c0c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.30-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8eac42d704216008c372654d2ac17657fd7cd996209e37de2cec4377cf96636c
MD5 57a10640c0309af882c64c58307b3ac8
BLAKE2b-256 bec1fe4bd1eb10ad6a7ea2a0d1f69b247cdceabdad9be877c00e46d38ea15d6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.30-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 79aaacd80c2cc07ae6ea5138654c6908b8a68318605d364bb80832d405b7dbb6
MD5 b39bedd030078f4a36d143f86d341e08
BLAKE2b-256 67bebf9dac818da80ffed43a5dececdfb7a0cd3d20bf3e4ebcf92827aab6d6d5

See more details on using hashes here.

Provenance

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