fipv


Namefipv JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/eredotpkfr/fipv
SummaryFast IP validator for bulk IP data.
upload_time2023-05-07 14:43:18
maintainer
docs_urlNone
authoreredotpkfr
requires_python>=3.9
licenseMIT
keywords fast validation validator validate ipv4 ipv6 ipv6_cidr ipv4_cidr
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # fipv
[![Test](https://github.com/eredotpkfr/fipv/actions/workflows/python-package-test.yml/badge.svg)](https://github.com/eredotpkfr/fipv/actions/workflows/python-package-test.yml)
[![PyPI](https://img.shields.io/pypi/v/fipv)](https://pypi.org/project/fipv/)
[![Github Pages](https://img.shields.io/badge/github-pages-orange.svg)](https://www.erdoganyoksul.com/fipv/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fipv)
[![License: MIT](https://img.shields.io/badge/license-MIT-informational.svg)](https://opensource.org/licenses/MIT)
[![Stars](https://img.shields.io/github/stars/eredotpkfr/fipv?style=social)](https://github.com/eredotpkfr/fipv/stargazers)

`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](https://www.erdoganyoksul.com/fipv/) for full package reference and documentation.

## Installation
`fipv` can be installed easily with `pip3`. It requires `Python 3.9+`
```sh
$ pip3 install fipv
```
## Usage
```python
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
```
<hr/>

```python
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.

<b>Test Duration:</b> Used linux `time` command for determine execution time of script.<br/>
<b>Avr. RAM Usage:</b> Used linux `ps` command every `0.1` second and calculated RAM average.

:green_circle: Valid :red_circle: Invalid
<table>
  <thead>
    <tr>
      <th align="center" scope="col">Test ID</th>
      <th align="center" scope="col" colspan="2" scope="colgroup">Test Data Count</th>
      <th align="center" scope="col">Total Data</th>
      <th align="center" scope="col">Data Type</th>
      <th align="center">Project</th>
      <th align="center">Validation Duration</th>
      <th align="center">Avr. RAM Usage (MB)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">1</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">500K</td>
      <td align="center" rowspan="3">1M</td>
      <td align="center" rowspan="3">IPv4</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m12,975s</td>
      <td align="center">85M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">500K</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m2,007s</td>
      <td align="center">80M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m0,635s</td>
      <td align="center">76M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">2</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">1M</td>
      <td align="center" rowspan="3">2M</td>
      <td align="center" rowspan="3">IPv4</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m25,682s</td>
      <td align="center">151M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">1M</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m3,937s</td>
      <td align="center">154M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m1,193s</td>
      <td align="center">150M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">3</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">500K</td>
      <td align="center" rowspan="3">1M</td>
      <td align="center" rowspan="3">IPv4 CIDR</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m19,721s</td>
      <td align="center">96M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">500K</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m8,662s</td>
      <td align="center">89M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m0,909s</td>
      <td align="center">77M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">4</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">1M</td>
      <td align="center" rowspan="3">2M</td>
      <td align="center" rowspan="3">IPv4 CIDR</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m39,457s</td>
      <td align="center">179M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">1M</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m17,029s</td>
      <td align="center">174M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m1,779s</td>
      <td align="center">174M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">5</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">500K</td>
      <td align="center" rowspan="3">1M</td>
      <td align="center" rowspan="3">IPv6</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m12,633s</td>
      <td align="center">96M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">500K</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m2,802s</td>
      <td align="center">92M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m0,684s</td>
      <td align="center">87M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">6</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">1M</td>
      <td align="center" rowspan="3">2M</td>
      <td align="center" rowspan="3">IPv6</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m26,449s</td>
      <td align="center">183M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">1M</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m5,605s</td>
      <td align="center">177M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m1,308s</td>
      <td align="center">172M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">7</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">500K</td>
      <td align="center" rowspan="3">1M</td>
      <td align="center" rowspan="3">IPv6 CIDR</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m20,936s</td>
      <td align="center">99M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">500K</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m10,778s</td>
      <td align="center">95M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m0,958s</td>
      <td align="center">93M</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th align="center" rowspan="3" scope="rowgroup">8</th>
      <th align="center" scope="row">:green_circle:</th>
      <td align="center">1M</td>
      <td align="center" rowspan="3">2M</td>
      <td align="center" rowspan="3">IPv6 CIDR</td>
      <td align="center">
        <a href="https://github.com/kvesteri/validators" target="_blank">validators</a>
      </td>
      <td align="center">0m51,382s</td>
      <td align="center">184M</td>
    </tr>
    <tr>
      <th align="center" scope="row">:red_circle:</th>
      <td align="center">1M</td>
      <td align="center">
        <a href="https://docs.python.org/3/library/ipaddress.html" target="_blank">ipaddress</a>
      </td>
      <td align="center">0m25,563s</td>
      <td align="center">184M</td>
    </tr>
    <tr>
      <th align="center" scope="row">N/A</th>
      <td align="center">N/A</td>
      <td align="center">fipv</td>
      <td align="center">0m1,862s</td>
      <td align="center">168M</td>
    </tr>
  </tbody>
</table>

## Contact
Blog - [erdoganyoksul.com](https://www.erdoganyoksul.com)<br/>
Mail - erdoganyoksul3@gmail.com

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/eredotpkfr/fipv",
    "name": "fipv",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "fast,validation,validator,validate,ipv4,ipv6,ipv6_cidr,ipv4_cidr",
    "author": "eredotpkfr",
    "author_email": "erdoganyoksul3@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/95/a9/5dbdf15aca44cbf1947c1142f1e414d8d45efa54079f71ef0634a92254b4/fipv-1.0.0.tar.gz",
    "platform": null,
    "description": "# fipv\n[![Test](https://github.com/eredotpkfr/fipv/actions/workflows/python-package-test.yml/badge.svg)](https://github.com/eredotpkfr/fipv/actions/workflows/python-package-test.yml)\n[![PyPI](https://img.shields.io/pypi/v/fipv)](https://pypi.org/project/fipv/)\n[![Github Pages](https://img.shields.io/badge/github-pages-orange.svg)](https://www.erdoganyoksul.com/fipv/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fipv)\n[![License: MIT](https://img.shields.io/badge/license-MIT-informational.svg)](https://opensource.org/licenses/MIT)\n[![Stars](https://img.shields.io/github/stars/eredotpkfr/fipv?style=social)](https://github.com/eredotpkfr/fipv/stargazers)\n\n`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:\n- ipv4\n- ipv4_cidr\n- ipv6\n- ipv6_cidr\n\nCan be used on bulk IP data. You can find detailed test benchmark at below. Also see [github pages](https://www.erdoganyoksul.com/fipv/) for full package reference and documentation.\n\n## Installation\n`fipv` can be installed easily with `pip3`. It requires `Python 3.9+`\n```sh\n$ pip3 install fipv\n```\n## Usage\n```python\nimport fipv\n\n# Basic C validation functions\nprint(\n    fipv.ipv4(\"127.0.0.1\"),\n    fipv.ipv4_cidr(\"127.0.0.1/44\"),\n    fipv.ipv6(\"::1\"),\n    fipv.ipv6_cidr(\"::1/129\"),\n)\n```\n```\nTrue False True False\n```\n<hr/>\n\n```python\nimport fipv\n\n# Validate bulk IPv4 data\nips = ['127.0.0.1'] * 1000000\nvalids = [ip for ip in ips if fipv.ipv4(ip)]\nprint(len(valids))\n```\n```\n1000000\n```\n\n## Test Benchmark (2021-10-07)\nIn 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.\n\n<b>Test Duration:</b> Used linux `time` command for determine execution time of script.<br/>\n<b>Avr. RAM Usage:</b> Used linux `ps` command every `0.1` second and calculated RAM average.\n\n:green_circle: Valid :red_circle: Invalid\n<table>\n  <thead>\n    <tr>\n      <th align=\"center\" scope=\"col\">Test ID</th>\n      <th align=\"center\" scope=\"col\" colspan=\"2\" scope=\"colgroup\">Test Data Count</th>\n      <th align=\"center\" scope=\"col\">Total Data</th>\n      <th align=\"center\" scope=\"col\">Data Type</th>\n      <th align=\"center\">Project</th>\n      <th align=\"center\">Validation Duration</th>\n      <th align=\"center\">Avr. RAM Usage (MB)</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">1</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\" rowspan=\"3\">1M</td>\n      <td align=\"center\" rowspan=\"3\">IPv4</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m12,975s</td>\n      <td align=\"center\">85M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m2,007s</td>\n      <td align=\"center\">80M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m0,635s</td>\n      <td align=\"center\">76M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">2</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\" rowspan=\"3\">2M</td>\n      <td align=\"center\" rowspan=\"3\">IPv4</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m25,682s</td>\n      <td align=\"center\">151M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m3,937s</td>\n      <td align=\"center\">154M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m1,193s</td>\n      <td align=\"center\">150M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">3</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\" rowspan=\"3\">1M</td>\n      <td align=\"center\" rowspan=\"3\">IPv4 CIDR</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m19,721s</td>\n      <td align=\"center\">96M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m8,662s</td>\n      <td align=\"center\">89M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m0,909s</td>\n      <td align=\"center\">77M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">4</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\" rowspan=\"3\">2M</td>\n      <td align=\"center\" rowspan=\"3\">IPv4 CIDR</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m39,457s</td>\n      <td align=\"center\">179M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m17,029s</td>\n      <td align=\"center\">174M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m1,779s</td>\n      <td align=\"center\">174M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">5</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\" rowspan=\"3\">1M</td>\n      <td align=\"center\" rowspan=\"3\">IPv6</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m12,633s</td>\n      <td align=\"center\">96M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m2,802s</td>\n      <td align=\"center\">92M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m0,684s</td>\n      <td align=\"center\">87M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">6</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\" rowspan=\"3\">2M</td>\n      <td align=\"center\" rowspan=\"3\">IPv6</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m26,449s</td>\n      <td align=\"center\">183M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m5,605s</td>\n      <td align=\"center\">177M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m1,308s</td>\n      <td align=\"center\">172M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">7</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\" rowspan=\"3\">1M</td>\n      <td align=\"center\" rowspan=\"3\">IPv6 CIDR</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m20,936s</td>\n      <td align=\"center\">99M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">500K</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m10,778s</td>\n      <td align=\"center\">95M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m0,958s</td>\n      <td align=\"center\">93M</td>\n    </tr>\n  </tbody>\n  <tbody>\n    <tr>\n      <th align=\"center\" rowspan=\"3\" scope=\"rowgroup\">8</th>\n      <th align=\"center\" scope=\"row\">:green_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\" rowspan=\"3\">2M</td>\n      <td align=\"center\" rowspan=\"3\">IPv6 CIDR</td>\n      <td align=\"center\">\n        <a href=\"https://github.com/kvesteri/validators\" target=\"_blank\">validators</a>\n      </td>\n      <td align=\"center\">0m51,382s</td>\n      <td align=\"center\">184M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">:red_circle:</th>\n      <td align=\"center\">1M</td>\n      <td align=\"center\">\n        <a href=\"https://docs.python.org/3/library/ipaddress.html\" target=\"_blank\">ipaddress</a>\n      </td>\n      <td align=\"center\">0m25,563s</td>\n      <td align=\"center\">184M</td>\n    </tr>\n    <tr>\n      <th align=\"center\" scope=\"row\">N/A</th>\n      <td align=\"center\">N/A</td>\n      <td align=\"center\">fipv</td>\n      <td align=\"center\">0m1,862s</td>\n      <td align=\"center\">168M</td>\n    </tr>\n  </tbody>\n</table>\n\n## Contact\nBlog - [erdoganyoksul.com](https://www.erdoganyoksul.com)<br/>\nMail - erdoganyoksul3@gmail.com\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Fast IP validator for bulk IP data.",
    "version": "1.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/eredotpkfr/fipv/issues",
        "Documentation": "https://www.erdoganyoksul.com/fipv/",
        "Homepage": "https://github.com/eredotpkfr/fipv",
        "Say Thanks (star the project)": "https://github.com/eredotpkfr/fipv"
    },
    "split_keywords": [
        "fast",
        "validation",
        "validator",
        "validate",
        "ipv4",
        "ipv6",
        "ipv6_cidr",
        "ipv4_cidr"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95a95dbdf15aca44cbf1947c1142f1e414d8d45efa54079f71ef0634a92254b4",
                "md5": "2117479097b3a43e8ada4b7ac75bb149",
                "sha256": "3c719ee4f1ad0ad317873f9e910e245500803044534e91b853bd318403dd4988"
            },
            "downloads": -1,
            "filename": "fipv-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2117479097b3a43e8ada4b7ac75bb149",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 8234,
            "upload_time": "2023-05-07T14:43:18",
            "upload_time_iso_8601": "2023-05-07T14:43:18.151238Z",
            "url": "https://files.pythonhosted.org/packages/95/a9/5dbdf15aca44cbf1947c1142f1e414d8d45efa54079f71ef0634a92254b4/fipv-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-07 14:43:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "eredotpkfr",
    "github_project": "fipv",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "fipv"
}
        
Elapsed time: 0.06086s