Skip to content
main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 (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.

🟢 Valid 🔴 Invalid

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

Contact

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