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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (623.1 kB view details)

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

iptocc-3.3.10-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.10-cp310-abi3-macosx_11_0_arm64.whl (620.1 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.10-cp310-abi3-macosx_10_12_x86_64.whl (614.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.10.tar.gz
  • Upload date:
  • Size: 444.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.10.tar.gz
Algorithm Hash digest
SHA256 cd8ca28a541a9f1400cd2f043948cca1073c46f9fdae684a552157ceec8d70d7
MD5 04b012172164c6139a29f57693704b73
BLAKE2b-256 194f8273f7b13ae68b46b1a2597dbb3fbbbc454b84605904506b6eb23761791a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.10-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.10-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5ff1e132e9bddafcaa5c9d09a23ddf65bc65184f53f5d87ce3c3b7717598e4c8
MD5 4ac92884010f84a3cf560898c863082c
BLAKE2b-256 1a6746b83635b9d475828b61424b0fa50ecded539d0558de7e490cc721f1f42a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.10-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b59b44f54e00e2251032fafbdd2564b6efae6ffc972e17605e2872b21f8d984
MD5 38e4a177163dd4f80f435f5c76d46b39
BLAKE2b-256 effabd9b7f2abf62b63ed7c634eef16a6359e6961eecd118de0c519c0832321c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.10-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7aaa18c93103966a15090deaaa2a07e56b4409cde477fbb06c9dad5a0c54cb20
MD5 1d837ecfb680b74b71a7f4792112632a
BLAKE2b-256 27542b22235b6444d7305d03a2de266ddae5cb1a9314d78935b2b8d2ac51381b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.10-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef7649a15a7b16c3e8a50e9bd4dc3e74f98adebf4d669fe3ed2bfe70bb9fb8db
MD5 152afb4c02031d454c4bbafef417bc24
BLAKE2b-256 353129af061c7de92ada65f708d76fca814341d64dcec1aa3362bdf5a97872b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.10-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 304df27bd122a25e0f65bfdea0ea0517fdf755ad8adec261e133f4e835bc6d1e
MD5 51fb69777ae1cd8d8eb09cc4c6b31053
BLAKE2b-256 7330d568cde6a6d274074b9b6a04e374f4c529a2ef7fbc307512b88331942c5e

See more details on using hashes here.

Provenance

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