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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.20-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (624.0 kB view details)

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

iptocc-3.3.20-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (624.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.20-cp310-abi3-macosx_11_0_arm64.whl (620.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.20-cp310-abi3-macosx_10_12_x86_64.whl (614.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.20.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.20.tar.gz
Algorithm Hash digest
SHA256 529993ce6accd627bd4f1f38f64b50329560ed2b9aea43f5eeddd460a166cdb8
MD5 c5fcc91ecfd87d72c2c9bc19f16cb52b
BLAKE2b-256 7e3b36edfdee96e0bfd6e3a64c197c61ea77aa3cc2d38c4b3de704bcd7a19825

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.20-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.1 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.20-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 17b2c332dd10a7b7221bf099cced686ceeea1efb1a9c0664e4852cc4b226109e
MD5 7dfd2b80577c39b02e5fd58ac26fa9f3
BLAKE2b-256 d37b15efabaeb8ca5ab402e609636c0e86adf31b324de8cda842b88b1fcd0986

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.20-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6a54363d6ae17a77787fb9c8e9e9fd99ee89e601e9e52fa05f30b4af9f7dfe7
MD5 98ef0b4f069ca04d3601b24aaa7afdfa
BLAKE2b-256 15a2e982f7bf8963442e20eb05b97e0b3389bfc59ade106e895265204b34eb7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.20-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b4565f26c9ce21efc2e35f2cec52acf26aa51039bac29dc34401e4a24d4cfdff
MD5 c9bd8e6f6afc1f3f6a9032204b26ab2e
BLAKE2b-256 83c2bd0040ee2c04fa1d3c95db427afc72107f85226907138f744b4bcc4a47c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.20-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b04ce43b10b77ebac7f2395881433e15ea5dc93e5c94413bb5e067def1afa7af
MD5 defe80cc3b2d36183745070d4894bf6f
BLAKE2b-256 a43277311ba402cca9e5ce347ac3a48f8926351b7f04e91c544735ffb1c8f026

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.20-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7633a7999252a0c984b4dacb7100a8c8abc896f94b0a9593bc003c4fb49da625
MD5 01df4cadd1c9f3de7668988230db803b
BLAKE2b-256 2c39d26a2fef995a9c0349821fd4a48600de03ae986728a142e38bd1c10d81b1

See more details on using hashes here.

Provenance

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