public static function portMatches($pattern, $port)
{
if ($pattern === "*") {
return true;
}
if ((string) $pattern === "") {
return (string) $port === "";
}
if (preg_match('/\\A\\d+\\z/', $pattern)) {
return (string) $pattern === (string) $port;
}
if (preg_match('/\\A(?P<from>\\d+)-(?P<to>\\d+)\\z/', $pattern, $captured)) {
return $captured['from'] <= $port && $port <= $captured['to'];
}
throw new \InvalidArgumentException("Invalid port pattern: {$pattern}");
}