1

複数のソケット接続のアプリケーション(TCPアラームウォッチャー)を開発しています。現在、アラームをモックするために、アラームエンドポイントをシミュレートする小さなアプリケーションをVMマシンで実行するようにしました(つまり、VmのIPが異なるため)。

私がやりたいのは、「サーバー」(つまり最初のアプリケーション)を実行しているのと同じマシンでアラームをモックすることです。ただし、これらのモックアラームに別のIPを設定する必要があります。最初のアプリと同じIPでモックを実行したくない(たとえば、サーバーは192.168.1.4、モックは192.168.1.10、その他は192.168.1.11など)すべて同じマシンに存在する、VMがそれを行うことができる方法と同じように)。

「ブリッジネットワーク」モードの仮想マシンは、DHCPサーバーから異なるIPを取得できます(これが私がこのアイデアを得るところです)。だから、私はタスクを完了するためにどこを調査するかについて少し混乱しています、私の質問は:

DHCP経由で独自のIPアドレスを取得するために、プログラムで模擬アプリケーションを作成するにはどうすればよいですか?(または、.NET Frameworkを考えると、それは不可能ですか?)

ハッジ-

4

2 に答える 2

3

DHCPサーバーと確実に通信できます。パケット形式はRFC2131に文書化されています。C#からこれを行うのは比較的簡単です。

ただし、これはすべて、DHCPサーバーのプールからIPアドレスを「盗む」ことです。実際にはネットワークスタックにバインドされません。

アプリケーションにこのIPアドレスをリッスンさせる必要があるようです。このIPアドレスがマシンのネットワークアダプタに割り当てられていない限り、これは機能しません。

つまり、複数のネットワークアダプター、またはマルチホームネットワークアダプターが必要です。その場合は、DHCPを使用して自分自身を整理することをお勧めします。

一方、すべてのトラフィックがローカルの場合は、「Microsoft Loopback Adapter」をインストールし、それに多数のIPアドレスを割り当てます。

于 2009-09-16T14:30:39.980 に答える
0

確かにC#でこれを行うことができますが、これを行うための既存のクラスがあるとは思えません(通常のことではありません!)

おそらく、パケットを自分で受信/送信することによって、自分でそれを行う必要があります。

私はなんとか役に立つかもしれない次のリンクを見つけることができました:

http://social.msdn.microsoft.com/Forums/en-US/wsk/thread/836c2150-583c-43a6-93b3-0e3202c2e2f5

(DHCPサーバーの作成と書かれていることは知っていますが、DHCPプロトコルの動作を調べるという観点から始めるのに適した場所である可能性があります)

とは言っても、別のIPアドレスからIPアドレスのリースを要求する際に問題が発生する可能性があると思います。

于 2009-09-16T14:31:25.587 に答える