Perlを用いてホストの指定ポートが解放されているかを確認する
CentOSやUbuntuではnmapやtelnetがデフォルトで入っていないので、Perlを用いてポートスキャンを行えるようにしました。
今回実行した環境は以下の通りです。
- Ubuntu 16.04.2 LTS
- Perl v5.22.1
ポートスキャンをするにあたってIO::Socket::INETモジュールを使用しました。
このモジュールはPerl v5.6.0以上からコアモジュールとなっています。
gist6e75c1e3f5c8fa3b4e505b8e032dce57
使い方はperl Confirmation_Port.pl [HOST名] [PORT番号] [tcp または udpと入力]です。
本当は、PROTOにはデフォルトで"tcp"の値が入力されるのですが、
コマンドラインから入力値を持ってきたかったのでコマンドライン引数が3つ無かった場合は
エラーとして処理するようにしました・・・(精進します)
試しに、デフォルトのポート番号から変更済みのsshポートに対してポートスキャンを行った結果、
となりました。
<追記>
うまいことワンライナーで走るPerlプログラムを公開されている方がいましたので
紹介させて頂きます。
atomitech.jp