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.14.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.14-cp310-abi3-win_amd64.whl (512.9 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.14-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (623.4 kB view details)

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

iptocc-3.3.14-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (624.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.14-cp310-abi3-macosx_11_0_arm64.whl (620.3 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.14-cp310-abi3-macosx_10_12_x86_64.whl (614.7 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.14.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.14.tar.gz
Algorithm Hash digest
SHA256 d4b66acc11cf0a7c618eac09ee370ef880c674b2cbc24ae5d4b7a0f3826893c1
MD5 36ff1af5143478542c75620768737c2d
BLAKE2b-256 9f595982cac1ef2115911bd3e1d8550df13b67abb00372fe8b1732346a59af7b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.14-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 512.9 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.14-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6c662524e2913a831816056f6d2bb970b2969a78b3b7bcf0dc125fbb5fea3c36
MD5 7a86d1a509e8db06f135b2c515323c7e
BLAKE2b-256 f3ee26075862f07c3a1a68b50e9cf27033a14d2253ff3b4dbfe274ef0153d4ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.14-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c5888f8c90d1c735bab23a5e9834901b3479af39a715a5e841c6b94d4627bb7
MD5 d26a426e20c6f42b786ab0e9307c60b0
BLAKE2b-256 3a5a08c083fabc9a00898694a547de4af7bacd07c61f1e63db7c33c230aff5cf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.14-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0422e8acf4d7c5f1a02444b431fc926edbc0d236f5d9587110b188cb3f63c687
MD5 6e98c209fd79e121d2d1c10b06f3261e
BLAKE2b-256 5f92fbdc2185e7e8de94808d374487212d5195370b5979b918ec27fedf4eab75

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.14-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b54a4ce08220f3c9458a79babef2e6a3b75e72c11ea6431cc741498a7db8a723
MD5 057c54f2d7601d98846713ea36118a9a
BLAKE2b-256 b8264a37b9b75303a9147b27abd2dfd05e837f937c05f795339138b83316ef01

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.14-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9d3cb66967a4afddf7c4cd3b921b84e44a1cfb5374f432b85bf62a2cf0a9b451
MD5 3260fef8daab508ac547a5f970b31c31
BLAKE2b-256 3d53254d214000a9ef6b026beff9c9e7ccb1d515dcaf46a22c64397dba397294

See more details on using hashes here.

Provenance

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