Fast IP validator for bulk IP data.
Project description
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. Also see github pages for full package reference and documentation.
Installation
fipv
can be installed easily with pip3
. It requires Python 3.9+
$ pip3 install fipv
Usage
import fipv
# Basic C validation functions
print(
fipv.ipv4("127.0.0.1"),
fipv.ipv4_cidr("127.0.0.1/44"),
fipv.ipv6("::1"),
fipv.ipv6_cidr("::1/129"),
)
True False True False
import fipv
# 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 (2021-10-07)
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
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.