Seditio Source
Root |
./othercms/phpBB3/vendor/s9e/text-formatter/src/Parser/AttributeFilters/NetworkFilter.php
<?php

/**
* @package   s9e\TextFormatter
* @copyright Copyright (c) 2010-2021 The s9e authors
* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
*/
namespace s9e\TextFormatter\Parser\AttributeFilters;

class
NetworkFilter
{
   
/**
    * Filter an IP value (includes IPv4 and IPv6)
    *
    * @param  string $attrValue Original value
    * @return mixed             Filtered value, or FALSE if invalid
    */
   
public static function filterIp($attrValue)
    {
        return
filter_var($attrValue, FILTER_VALIDATE_IP);
    }

   
/**
    * Filter an IP:port value (includes IPv4 and IPv6)
    *
    * @param  string $attrValue Original value
    * @return mixed             Filtered value, or FALSE if invalid
    */
   
public static function filterIpport($attrValue)
    {
        if (
preg_match('/^\\[([^\\]]+)(\\]:[1-9][0-9]*)$/D', $attrValue, $m))
        {
           
$ip = self::filterIpv6($m[1]);

            if (
$ip === false)
            {
                return
false;
            }

            return
'[' . $ip . $m[2];
        }

        if (
preg_match('/^([^:]+)(:[1-9][0-9]*)$/D', $attrValue, $m))
        {
           
$ip = self::filterIpv4($m[1]);

            if (
$ip === false)
            {
                return
false;
            }

            return
$ip . $m[2];
        }

        return
false;
    }

   
/**
    * Filter an IPv4 value
    *
    * @param  string $attrValue Original value
    * @return mixed             Filtered value, or FALSE if invalid
    */
   
public static function filterIpv4($attrValue)
    {
        return
filter_var($attrValue, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
    }

   
/**
    * Filter an IPv6 value
    *
    * @param  string $attrValue Original value
    * @return mixed             Filtered value, or FALSE if invalid
    */
   
public static function filterIpv6($attrValue)
    {
        return
filter_var($attrValue, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
    }
}