getservbyport()

1. 定义

与函数getservbyname()类似,该函数通过指定端口和协议来获取互联网服务名称。 如果端口或协议不存在则返回FALSE。

2. 语法

getservbyport ( int $port , string $protocol ) : string

3. 参数说明

参数 可选性 数据类型 描述
$port 必需 整型 端口号,例如80
$protocol 必需 字符串 互联网协议名,例如tcp

其中,protocol参数可以是tcp或者udp

4. 示例

<?php

// getservbyport()
// 通过指定端口和协议来获取互联网服务名称

$port = 80;
$service = getservbyport($port, 'tcp');
echo "端口为$port 且协议为TCP的互联网服务为:$service\n";// 输出:端口为80 且协议为TCP的互联网服务为:http

/* 同样,可以利用该方法,获取服务名称列表(实际TCP最大端口号可达 65535) */
for ($port=1; $port < 100; $port++) { 
    $service = getservbyport($port, 'tcp');
    if($service) printf("%12s 服务的 TCP 协议端口为:%-4d\n", $service, $port);
}
/* 输出
        echo 服务的 TCP 协议端口为:7
     discard 服务的 TCP 协议端口为:9
      systat 服务的 TCP 协议端口为:11
     daytime 服务的 TCP 协议端口为:13
        qotd 服务的 TCP 协议端口为:17
     chargen 服务的 TCP 协议端口为:19
    ftp-data 服务的 TCP 协议端口为:20
         ftp 服务的 TCP 协议端口为:21
         ssh 服务的 TCP 协议端口为:22
      telnet 服务的 TCP 协议端口为:23
        smtp 服务的 TCP 协议端口为:25
        time 服务的 TCP 协议端口为:37
  nameserver 服务的 TCP 协议端口为:42
     nicname 服务的 TCP 协议端口为:43
      domain 服务的 TCP 协议端口为:53
      gopher 服务的 TCP 协议端口为:70
      finger 服务的 TCP 协议端口为:79
        http 服务的 TCP 协议端口为:80
   hosts2-ns 服务的 TCP 协议端口为:81
    kerberos 服务的 TCP 协议端口为:88
 */

5. 延展阅读

  • getservbyname():返回指定互联网服务和协议对应使用的端口