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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.65-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.65-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.65-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.65.tar.gz.

File metadata

  • Download URL: iptocc-3.3.65.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.65.tar.gz
Algorithm Hash digest
SHA256 8cb9a4657c6fcd1dbeb91a83158a49fe494ec569fe3d1721468a5f0c23957d4a
MD5 63b0e77afa9193f762749739bf4c90a8
BLAKE2b-256 a3d4160723429c41cf04c8361a0d0c4dd86439f99396515a5793389256598c61

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.65-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.65-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 61c361b01333715de07751ff8e9f76229fc65abdfbbc78c8ddba5b1b8be6a4b0
MD5 19fa943443cb48f6dc99930e57b6ce43
BLAKE2b-256 6ba4b8068d6e045cfcc87624a1a1a09dfc52a1f462002fa66ea6eb6c1346caf9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.65-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c04f22e2aa0fb0e541640035a0c615bb1d6820e95b812e20b5f365332a927f7c
MD5 eb1e09044fb7e603071d17dae51e88a0
BLAKE2b-256 01983e4a87e8a9daabbea52cbc3c397e69f43f712cfb7c5303fede294fa8c258

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.65-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a6d7eb1c305be5b22d1b30c8a647c6a191f4a31c866d0daeccb71ddf477d7bb6
MD5 b60bc4ec65e347743e6dd2479686b246
BLAKE2b-256 1631df083204529ce01da34a5c97a6b3f8f9935db000d526877eb07ac496ee84

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.65-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc42090833b0bcfdd676ec0a2c1eb3ff215d0a2a7b1628ddac54701a951c2dc7
MD5 4f23d6977b66f77685102341bb8b4fe5
BLAKE2b-256 c2ab864f98994567a77ab3089146e335ef886c690828e6292b6d84824f49ef4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.65-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0d1e6c5521433435e5f6e34b479fed920d8bfb619c39cc911e7a8fbb575cef67
MD5 417145adaabc16ef47a42fc4eb6e7b0e
BLAKE2b-256 15215eba4bbdc57d368c2d3e322beb243a2205d0bc985be0b90be7874ec77272

See more details on using hashes here.

Provenance

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