Browse Source

implement port open check

main
ghost 1 year ago
parent
commit
673aacdb31
  1. 43
      src/Port.php

43
src/Port.php

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
namespace Yggverse\Net;
class Port
{
public static function isHost(mixed $value): bool
{
return
(
is_string($value) &&
(
false !== filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ||
false !== filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ||
false !== filter_var($value, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)
)
);
}
public static function isPort(mixed $value): bool
{
$length = strlen(
$value
);
return false !== filter_var($value, FILTER_VALIDATE_INT) && 0 < $length && 65536 > $length;
}
public static function isOpen(string $host, int $port = -1, ?float $timeout = null, int &$error_code = null, string &$error_message = null): bool
{
return is_resource(
@fsockopen(
$host,
$port,
$error_code,
$error_message,
$timeout
)
);
}
}
Loading…
Cancel
Save