関数の概要
PHPの getprotobynumber 関数は、指定したプロトコル番号に対応するプロトコル名を取得するための関数です。ネットワークプログラミングで、プロトコル番号(例:6はTCP、17はUDP)からそれに対応する名前を調べたい場合に便利です。
パラメータの説明
int $number– 調べたいプロトコル番号を整数で指定します。
戻り値
指定されたプロトコル番号に対応するプロトコル情報の配列を返します。配列の主な要素は次のとおりです。
name:プロトコルの名前(例:”tcp”)aliases:別名の配列proto:プロトコル番号(指定した値)
もし存在しない番号を指定した場合は false を返します。
使用例
基本的な使い方
<?php
$protocol = getprotobynumber(6);
print_r($protocol);
?>
このコードは、番号6のプロトコル情報(TCP)を取得し、配列を出力します。
番号17(UDP)のプロトコル名を取得する例
<?php
$udp = getprotobynumber(17);
if ($udp !== false) {
echo "プロトコル名: " . $udp['name'];
} else {
echo "該当するプロトコルがありません。";
}
?>
プロトコル番号17はUDPに対応しているため、画面に「プロトコル名: udp」が表示されます。
存在しないプロトコル番号での確認
<?php
$invalid = getprotobynumber(999);
var_dump($invalid);
?>
存在しない番号999を指定した場合は false が返ります。
関連する関数
getprotobyname()– プロトコル名からプロトコル情報を得るgetservbyname()– サービス名とプロトコル名からポート番号を得るgetservbyport()– ポート番号とプロトコル名からサービス名を得る
まとめ
getprotobynumber は、ネットワークプログラミングでプロトコル番号から名称を調べるのに役立つ関数です。TCPやUDPなどよく使うプロトコル番号の確認に便利であり、条件分岐などで正確なプロトコル名を得る際に活用できます。存在しない番号を指定すると false が返ってくる点も覚えておきましょう。実務でのネットワーク設定や通信処理の理解に欠かせない関数の一つです。
