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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.62-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.4 kB view details)

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

iptocc-3.3.62-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.62-cp310-abi3-macosx_11_0_arm64.whl (622.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.62-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.62.tar.gz.

File metadata

  • Download URL: iptocc-3.3.62.tar.gz
  • Upload date:
  • Size: 445.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.62.tar.gz
Algorithm Hash digest
SHA256 7bd1526bbbf4cd2f6a18ba5856ade396f31cf5fe2e0d92df3ba734d2a0e7b735
MD5 44a5dfeb66695a2a8f3fd53ea761923d
BLAKE2b-256 9f5ff250da9404ee1193826dde3373fbf51510395e7fda22a827aafb4f9b7ba9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.62-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.6 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.62-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a4a83be942c08f101cf8abdf4d60f7f72d441f938b8041692d387ac055e11c77
MD5 9bd72e2387008d3cf59dd8f69084f3b3
BLAKE2b-256 49fbfdbc60f9c91f881e2a6af7852bd64c29701b8459b74bc960763d3a5189ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.62-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07b80a4a004c316e29553b6487d437be4abf000a2e857770026b49b03f4611c7
MD5 29ef5b7b3f77f332a115eaeb8cad9b2e
BLAKE2b-256 43decd7e6199513a3c33f10d06c1e5dccab3a47615610cc10aa0ee8a2711df06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.62-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8b06ceb903f41a6b578945c64b311734e166a095e66405188f4614c630f34fd6
MD5 30ae3a870898338bfbdec29df9e9aae8
BLAKE2b-256 f8f7af3a4135282654fe616aa1026d36928b97f796022ac685d0b2100d28db3d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.62-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c345d35c0cf49aba1054850d1805068d9583c6f6beb91150111cd745a3569d15
MD5 65ee36afb275ccc768ff16ec4e10ace5
BLAKE2b-256 51868f959e06d8cfe6e762c5fb31ce5a09d3cc8b15cbe02eb53276f246cb0704

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.62-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ca556c81dc352ef0d322b2bcd3de1712eabf7dbff78a101e95a751483435a8b8
MD5 811254a52ddd44e845ed021a83f67717
BLAKE2b-256 f5321034461d78cc6be1b5ba3177bcb813388a1e993c4644d5af53798e772bab

See more details on using hashes here.

Provenance

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