【PHP8.x】getservbyname関数の使い方

作成日: 更新日:

getservbyname関数は、指定されたサービス名とプロトコルに対応するポート番号とプロトコルに関する情報を取得する関数です。この関数は、/etc/servicesファイルまたは同等のシステムサービスデータベースを参照し、サービス名に基づいてポート番号やプロトコルなどの関連情報を検索します。

具体的には、第1引数にサービス名(例えば"http"、"ftp"など)を文字列で指定し、第2引数にプロトコル名(例えば"tcp"、"udp"など)を文字列で指定します。関数は、これらの引数に合致するサービス情報が見つかった場合、そのサービスに関する連想配列を返します。連想配列には、ポート番号(portキー)、プロトコル名(protoキー)、サービス名(nameキー)、エイリアス(aliasesキー、文字列の配列)などの情報が含まれます。

もし指定されたサービス名とプロトコルの組み合わせが見つからない場合、この関数はfalseを返します。この関数は、ネットワークプログラミングにおいて、サービス名から対応するポート番号を動的に取得する必要がある場合に役立ちます。例えば、特定のサービスに接続する際に、ポート番号をハードコードするのではなく、サービス名から解決することで、設定の柔軟性を高めることができます。また、セキュリティ上の理由から、特定のサービスがどのポートを使用しているかを確認する目的でも使用できます。

基本的な使い方

構文(syntax)

getservbyname(string $service, string $protocol): int|false

引数(parameters)

string $service, string $protocol

  • string $service: サービス名(例: "ftp", "http")を指定する文字列
  • string $protocol: プロトコル名(例: "tcp", "udp")を指定する文字列

戻り値(return)

int|false

指定されたサービス名に対応するポート番号を整数で返します。サービスが見つからない場合はfalseを返します。

【PHP8.x】getservbyname関数の使い方 | いっしー@Webエンジニア