2011-06-19 4 views
1

私のコードが今実行されている最初のIPアドレスではなく、私が望むこれらのnmapスキャンの誰かを実行するために作成できるコマンドまたは機能はありますか?スキャンし、残りは従う?ここでperlで実行する特定のプロセスを選択するには

は私のコードです:

(`nmap -v -r 99.xxx.xxx -p 1-200`); 
(`nmap -v -r 98.xxx.xxx -p 1-200`); 
(`nmap -v -r 96.xxx.xxx -p 1-200`); 
+3

不十分なデータとして、CLI引数のアドレスを使用してスクリプトを呼び出します意味のある答え。実行するものと実行するものを選択する方法を教えてください。コード実行の仕組みの代わりに「何を意味するのですか?あなたのコードはどのように*実行されますか? – jwodder

答えて

4

あなたが@ARGV使用する必要があります。

system("nmap -v -r $ARGV[0] -p 1-200"); 

をそして、このようなためperl foo.pl 99.1.1.1

+0

'$ ARGV [0]'でなければ、少なくともいくつかの変数があります。ただし、コードは結果を文字列変数に割り当てる必要があります。表示されているバッククォート(Perl)では、出力がキャプチャされ、破棄されます。従って: 'my $ scan = qx(nmap -v -r $ ip_address -p 1-200);'。 –

+1

質問にバックティックを付け加えました - その理由がありましたか? '出力をstdoutに送る'の単なるケースであるかもしれません。その場合、 'system'はより良い選択かもしれません。 –

+0

'@ ARGV'を追加する以外に、OPのコードをそのままコピーしました...' system() '最適化をキャッチしてくれてありがとう –

関連する問題