原本に一部間違いや遠回りをしていると思われる点がありましたので修正してあります。
#!/usr/bin/perl
#-------------------------------------------------#
# Name: Port Scan Program
# 原作: Perl scan port
# (URL: http://www.perlmonks.org/?node_id=806461)
# 解説: ORBIT SPACE
# 目的: ポートスキャンプログラムの構造の
# 理解とモジュール利用方法等の理解
# を行う為に今回構造の解説とプログ
# ラムの変更を行いました。
#-------------------------------------------------#
#モジュール使用宣言
use IO::Socket;
# Very Simple Scan Port Write in Perl
# MAIN PROG
print "Perl Scan Port V1.0nn";
# User Var
# perl port.pl 127.0.0.1のように入力されたIPアドレスを取得
my $iptarget = $ARGV[0];
unless($ARGV[0]){die "MISSING IP ADRESSnn";}
print "Interesting ports on $iptargetnn";
print "PORT // STATE // SERVICEn";
# Scanning fonction
# ポート番号をインクリメントして作成する。
for(my $iport = 0; $iport != 65537; $iport++){
# 指定されたIPアドレスのポートへ接続
if (my $remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => $iptarget,
PeerPort => $iport,
Timeout => "5")){
# サービス内容(http,ftp,ssh等)の表示し格変数へ格納
(my $name, my $aliases, my $port_number, my $protocol_name) =+
getservbyport($iport , "tcp");
# サービス名が不明な場合NAを格納
unless($name){$name = "NA";}
# 出力
print "$iport open $namen";
# 切断
close($remote);
}
}
print "Scan Finishn";
最近のコメント