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

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.78-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.5 kB view details)

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

iptocc-3.3.78-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.78-cp310-abi3-macosx_11_0_arm64.whl (618.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.78-cp310-abi3-macosx_10_12_x86_64.whl (618.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.78.tar.gz
  • Upload date:
  • Size: 445.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.78.tar.gz
Algorithm Hash digest
SHA256 32d7ec271222b0a378097587bf27b7a82fd4b8d4551ac6597526cd62d728f89c
MD5 f4003bcf2940499f9861f001402f105b
BLAKE2b-256 0c9da58545e8eb431b65966d6ec770bcb4a81d6fecd82eaeb29d943513be636c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.78-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.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.78-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 29bfef244cd009ef87885a655bb3dec4d55f1e1db3867d35ed540472c4d5218d
MD5 bcd200af5055c3ce9bfa441cc8ecad2e
BLAKE2b-256 31cd7c2e8da08b6c057deba4836d3e106d85dad476fc321e55ab36889e253040

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.78-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 232ff0200529e7dc017cd59aadead61d7de4c359067394e422c5afe986c64987
MD5 7da5185c7445c510e5c9ac3d7235e63c
BLAKE2b-256 90989a5c662443f79731d57a37c8b5601469574bd873cfc9787e2a7121f90f8e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.78-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b34425645f52e108c4320917abe0f3d46e3746e5f0eb523587fc7df95cf605d
MD5 d4d46eb9798d44cad4ce12165a1edf24
BLAKE2b-256 ac59b1ea4d38f7b44cde496dfb789cfc3b00afff04065c592bc18984a570934b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.78-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 beecfd9f83a2432188d0957097a0cb1d86b3d1a721e2fa164678d3bf8e8f5c50
MD5 bec2f0350366688cdc8d892022546a09
BLAKE2b-256 2d2843b67b938e723332f491d6225b84aa644e0fc639a13822df1303f37dd18c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.78-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 10a33b0531a64caeae59ab8f7f29491668c8df753f5ebc8e2060c7eda056e396
MD5 b45836a531723e4326b0ae49b3fe7c3d
BLAKE2b-256 a3286f182ae8cade478468476a97b05e3c09abfb69fd24f2c7ee24a14ff1fefc

See more details on using hashes here.

Provenance

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