インターネットサービス情報を走査する
getservent はシステムのインターネットサービス情報(Linux では主に /etc/services
に登録されている情報)にアクセスし、インターネットサービス情報を返します。引数はありません。
# 0 1 2 3
my ( $name, $aliases, $port, $proto ) = getservent;
| No. | 変数 | 意味 | 実例 |
|---|---|---|---|
| 0 | $name |
サービス名 | pop3 |
| 1 | $aliases |
エイリアス (別名) | pop-3 |
| 2 | $port |
ポート番号 | 110 |
| 3 | $proto |
下位プロトコル名 | tcp |
getservent はイテレーターとして機能しますので、一般的には while ループで使われます。
以下のサンプルコードは、サービス名を一覧出力します。
while ( my @info = getservent ) {
print $info[0], "\n";
}
getservent はスカラーコンテキストであれば、最初の項目であるサービス名のみを返します。
そのため、前述のサンプルコードは次のように書き換えても同じです。
while ( my $name = getservent ) {
print $name, "\n";
}
なお、getservent は Windows では機能しませんので注意してください。