Skip to main content

Fast IP validator for bulk IP data.

Project description

Test PyPI PyPI - Python Version License: MIT Stars

fipv

fipv (fast ip validator) is a python package build with C language. Simply it includes basic IP address validator functions as a C function, so works faster than others. Following C functions avaliable on this package:

  • ipv4
  • ipv4_cidr
  • ipv6
  • ipv6_cidr

Can be used on bulk IP data. You can find detailed test benchmark at below.

Installation

fipv can be installed easly with pip3. It requires Python 3.7+

$ pip3 install fipv

Usage

#!/usr/bin/python3

import fipv

# Basic C validation functions
print(
    fipv.ipv4('127.0.0.1'),  # True
    fipv.ipv4_cidr('127.0.0.1/44'),  # False
    fipv.ipv6('::1'),  # True
    fipv.ipv6_cidr('::1/129'),  # False
)

# Validate bulk IPv4 data
ips = ['127.0.0.1'] * 1000000
valids = [ip for ip in ips if fipv.ipv4(ip)]
print(len(valids))  # 1000000

Test Benchmark

In this test, it was tested validation speed and average RAM usage with different python validators and different data types. Finally results saved to below table.

Test Duration: Used linux time command for determine execution time of script.
Avr. RAM Usage: Used linux ps command every 0.1 second and calculated RAM average.

:green_circle: Valid :red_circle: Invalid

Test ID Test Data Count Total Data Data Type Project Validation Duration Avr. RAM Usage (MB)
1 :green_circle: 500K 1M IPv4 validators 0m12,975s 85M
:red_circle: 500K ipaddress 0m2,007s 80M
N/A N/A fipv 0m0,635s 76M
2 :green_circle: 1M 2M IPv4 validators 0m25,682s 151M
:red_circle: 1M ipaddress 0m3,937s 154M
N/A N/A fipv 0m1,193s 150M
3 :green_circle: 500K 1M IPv4 CIDR validators 0m19,721s 96M
:red_circle: 500K ipaddress 0m8,662s 89M
N/A N/A fipv 0m0,909s 77M
4 :green_circle: 1M 2M IPv4 CIDR validators 0m39,457s 179M
:red_circle: 1M ipaddress 0m17,029s 174M
N/A N/A fipv 0m1,779s 174M
5 :green_circle: 500K 1M IPv6 validators 0m12,633s 96M
:red_circle: 500K ipaddress 0m2,802s 92M
N/A N/A fipv 0m0,684s 87M
6 :green_circle: 1M 2M IPv6 validators 0m26,449s 183M
:red_circle: 1M ipaddress 0m5,605s 177M
N/A N/A fipv 0m1,308s 172M
7 :green_circle: 500K 1M IPv6 CIDR validators 0m20,936s 99M
:red_circle: 500K ipaddress 0m10,778s 95M
N/A N/A fipv 0m0,958s 93M
8 :green_circle: 1M 2M IPv6 CIDR validators 0m51,382s 184M
:red_circle: 1M ipaddress 0m25,563s 184M
N/A N/A fipv 0m1,862s 168M

Contact

Blog - erdoganyoksul.com
Mail - erdoganyoksul3@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for fipv, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size fipv-0.1.2.tar.gz (8.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page