tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB2005でnmap処理
記事No6924
投稿日: 2008/02/04(Mon) 07:33
投稿者ただし
おはようございます。早速質問させていただきます。
VB2005を使用し、Button1を押したら指定したあらかじめ指定していたコマンドでTextBox1に書いたIP アドレスを検索させて、nmapの結果を設置したRichTextBox1に表示させたいのです。nmapのソースはありビルドはさせているのですが、どのように使ったらいいかわかりません。どなたかアドバイスよろしくお願いします。

[ツリー表示へ]
タイトルRe: VB2005でnmap処理
記事No6925
投稿日: 2008/02/04(Mon) 09:06
投稿者よねKEN
> VB2005を使用し、Button1を押したら指定したあらかじめ指定していたコマンドでTextBox1に書いたIP アドレスを検索させて、nmapの結果を設置したRichTextBox1に表示させたいのです。nmapのソースはありビルドはさせているのですが、どのように使ったらいいかわかりません。どなたかアドバイスよろしくお願いします。

VBとは無関係にnmap単体での使い方はご存知ですか?
(私はnmapについては知りません。今検索して概要をちら見した程度です)
そちらについてご存知だとして(ご存知でない場合はそちらの使用方法の調査が先でしょう。が、ここの掲示板の範疇ではありませんね。)、
Processクラスを使えば、他のプログラムを実行できますし、
コンソールプログラム相手ならその実行結果の出力も取得できます。

[ツリー表示へ]
タイトルRe^2: VB2005でnmap処理
記事No6926
投稿日: 2008/02/04(Mon) 10:48
投稿者ただし
よねKENさん朝早くからありがとうございます。

> VBとは無関係にnmap単体での使い方はご存知ですか?
単体での使い方はわかっています。

> Processクラスを使えば、他のプログラムを実行できますし、
exe形式ではなくコマンドプロントから実行するものなのですが、それでも可能でしょうか?

> コンソールプログラム相手ならその実行結果の出力も取得できます。
コマンドプロントからですので出力できるということで大丈夫ですか?

Console.WriteLine()であらかじめコマンドをうっておいてコマンドプロントを呼び出したら自動的に実行して出力取得というのがいいでしょうか?

出力の取得の仕方も申し訳ないですが、ご教授ください。よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: VB2005でnmap処理
記事No6927
投稿日: 2008/02/04(Mon) 11:24
投稿者魔界の仮面弁士
> > Processクラスを使えば、他のプログラムを実行できますし、
> exe形式ではなくコマンドプロントから実行するものなのですが、それでも可能でしょうか?
コマンドプロンプト起動で、かつ、*.exe ではないという事は…*.com ファイルですか?

> 出力の取得の仕方も申し訳ないですが、ご教授ください。よろしくお願いします。
これで良いのかな?
http://www.atmarkit.co.jp/fdotnet/dotnettips/657redirectstdout/redirectstdout.html

[ツリー表示へ]
タイトルRe^3: VB2005でnmap処理
記事No6928
投稿日: 2008/02/04(Mon) 11:53
投稿者よねKEN
#調べてコード書いて試してから投稿していたら、弁士さんとかぶった(^^;

> > Processクラスを使えば、他のプログラムを実行できますし、
> exe形式ではなくコマンドプロントから実行するものなのですが、それでも可能でしょうか?

exe形式でなくコマンドプロンプトから実行するものとは
拡張子がcomのものという意味でしょうか?

> > コンソールプログラム相手ならその実行結果の出力も取得できます。
> コマンドプロントからですので出力できるということで大丈夫ですか?
>
> Console.WriteLine()であらかじめコマンドをうっておいてコマンドプロントを呼び出したら自動的に実行して出力取得というのがいいでしょうか?

ちょっとおっしゃっていることの意味がよくわかりません。
nmapを呼び出してその結果を受け取る一連の流れをProcessクラスを使って実現します。

> 出力の取得の仕方も申し訳ないですが、ご教授ください。よろしくお願いします。

以下は手抜きプログラムですが、このプログラムでは、
DOSのDirコマンドを起動し、その結果を拾っています。
参考までに。

Imports System
Imports System.IO
Imports System.Diagnostics

Public Class ProcessTest
    Public Shared Sub Main()
        Dim proc As New Process()
        proc.StartInfo.FileName= "cmd.exe"
        proc.StartInfo.Arguments= "/c dir"
        proc.StartInfo.UseShellExecute = False
        proc.StartInfo.RedirectStandardOutput = True
        proc.Start()
        Console.WriteLine(proc.StandardOutput.ReadToEnd())
        proc.WaitForExit()
        Console.WriteLine("コマンド終了")
        proc.Dispose()
    End Sub
End Class

[ツリー表示へ]
タイトルRe^4: VB2005でnmap処理
記事No6938
投稿日: 2008/02/06(Wed) 17:37
投稿者ただし
魔界の仮面弁士さん よねKENさんありがとうございます。
コマンドプロントからの出力を参考にさせてもらって色々やてみたのですが、まだ少し上手くいかず、色々調べてたりしてたら返信遅れてしまいました。申し訳ありません。
誘導ありがとうございます。参考にさせていただきます。

> 拡張子がcomのものという意味でしょうか?
>コマンドプロンプト起動で、かつ、*.exe ではないという事は…*.com ファイルですか?
拡張子なのですがcomといった拡張子はフォルダー内にはありませんでした。
ビルドして出来たファイルはVC++ Minimum Rebuild Dependency FileとMANIFEST ファイル
htm、xslとファイルが6個です。****.comといったファイルはありませんでした。

> nmapを呼び出してその結果を受け取る一連の流れをProcessクラスを使って実現します。
書き方がややこしくてすみません。上記の事がやりかったので、その解釈で大丈夫です。

> 以下は手抜きプログラムですが、このプログラムでは、
> DOSのDirコマンドを起動し、その結果を拾っています。
参考のプログラムありがとうございます。これでnmapの結果を拾うことが
出来るかどうかためしたいと思います。

[ツリー表示へ]