【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を返します。