function inet_ntop()

in src/os/inet_ntop.php [52:82]


function inet_ntop(AddressFamily $af, dynamic $addr): string {
  switch ($af) {
    case AddressFamily::AF_INET:
      if (!$addr is int) {
        _OS\throw_errno(
          Errno::EINVAL,
          "AF_INET address must be an int",
        );
      }
      // NetLongs are always uint32
      if ($addr < 0 || $addr >= (1 << 32)) {
        _OS\throw_errno(
          Errno::EINVAL,
          "AF_INET address must fit in a uint32",
        );
      }
      return inet_ntop_inet($addr);
    case AddressFamily::AF_INET6:
      if (
        !(
          $addr is string &&
          \filter_var($addr, \FILTER_VALIDATE_IP, \FILTER_FLAG_IPV6)
        )
      ) {
        _OS\throw_errno(Errno::EINVAL, "AF_INET6 address must be an in6_addr");
      }
      return inet_ntop_inet6(_OS\string_as_in6_addr_UNSAFE($addr as string));
    default:
      _OS\throw_errno(Errno::EAFNOSUPPORT, 'inet_ntop()');
  }
}