Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Ip
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 __construct
n/a
0 / 0
n/a
0 / 0
1
 ip2Float
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   phpOMS\Utils\Converter
8 * @copyright Dennis Eichhorn
9 * @license   OMS License 2.0
10 * @version   1.0.0
11 * @link      https://jingga.app
12 */
13declare(strict_types=1);
14
15namespace phpOMS\Utils\Converter;
16
17/**
18 * Ip converter.
19 *
20 * @package phpOMS\Utils\Converter
21 * @license OMS License 2.0
22 * @link    https://jingga.app
23 * @since   1.0.0
24 */
25final class Ip
26{
27    public const IP_TABLE_ITERATIONS = 100;
28
29    /**
30     * Constructor.
31     *
32     * @since 1.0.0
33     * @codeCoverageIgnore
34     */
35    private function __construct()
36    {
37    }
38
39    /**
40     * Convert ip to float
41     *
42     * @param string $ip IP
43     *
44     * @return float
45     *
46     * @since 1.0.0
47     */
48    public static function ip2Float(string $ip) : float
49    {
50        $split = \explode('.', $ip);
51
52        return ((int) ($split[0] ?? 0)) * (256 ** 3)
53            + ((int) ($split[1] ?? 0)) * (256 ** 2)
54            + ((int) ($split[2] ?? 0)) * (256 ** 1)
55            + ((int) ($split[3] ?? 0));
56    }
57}