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 available 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 available on pypi.org and github.com
Installation
fipv
can be installed easly with pip3
. It requires Python 3.7+
1
$ pip3 install fipv
Usage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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 (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.
Test ID | Test Data Count | Total Data | Data Type | Project | Validation Duration | Avr. RAM Usage (MB) | |
---|---|---|---|---|---|---|---|
1 | Valid | 500K | 1M | IPv4 | validators | 0m12,975s | 85M |
Invalid | 500K | ipaddress | 0m2,007s | 80M | |||
N/A | N/A | fipv | 0m0,635s | 76M | |||
2 | Valid | 1M | 2M | IPv4 | validators | 0m25,682s | 151M |
Invalid | 1M | ipaddress | 0m3,937s | 154M | |||
N/A | N/A | fipv | 0m1,193s | 150M | |||
3 | Valid | 500K | 1M | IPv4 CIDR | validators | 0m19,721s | 96M |
Invalid | 500K | ipaddress | 0m8,662s | 89M | |||
N/A | N/A | fipv | 0m0,909s | 77M | |||
4 | Valid | 1M | 2M | IPv4 CIDR | validators | 0m39,457s | 179M |
Invalid | 1M | ipaddress | 0m17,029s | 174M | |||
N/A | N/A | fipv | 0m1,779s | 174M | |||
5 | Valid | 500K | 1M | IPv6 | validators | 0m12,633s | 96M |
Invalid | 500K | ipaddress | 0m2,802s | 92M | |||
N/A | N/A | fipv | 0m0,684s | 87M | |||
6 | Valid | 1M | 2M | IPv6 | validators | 0m26,449s | 183M |
Invalid | 1M | ipaddress | 0m5,605s | 177M | |||
N/A | N/A | fipv | 0m1,308s | 172M | |||
7 | Valid | 500K | 1M | IPv6 CIDR | validators | 0m20,936s | 99M |
Invalid | 500K | ipaddress | 0m10,778s | 95M | |||
N/A | N/A | fipv | 0m0,958s | 93M | |||
8 | Valid | 1M | 2M | IPv6 CIDR | validators | 0m51,382s | 184M |
Invalid | 1M | ipaddress | 0m25,563s | 184M | |||
N/A | N/A | fipv | 0m1,862s | 168M |
Contact
Blog - erdoganyoksul.com Mail - [email protected]