カスタム (ユーザー指定) IP アドレスを使用して Web ページを参照しようとしていますが、機能しません。webBrowser1 は Web ページを正常に読み込みますが、カスタム IP アドレスは使用せず、実際の IP アドレスでページを読み込みます。
これを正常に動作させる方法を教えてください。
これは私のコードです:
private void Form1_Load(object sender, EventArgs e)
{
IPAddress addr1 = IPAddress.Parse("192.168.1.100");
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate("www.whatismyip.com");
}
答え1
一般的なプログラミング (特に C#) の仕組み、および IP プロトコル (インターネット上の Web サイトにアクセスするために使用される) の仕組みについて、大きな誤解があるようです。
C# の誤解は、IP アドレスを表すオブジェクトを作成するだけで、コンピュータがその IP アドレスの意味を理解できると期待することです。このようなことが可能であれば、コード内で何らかの方法で IP アドレスを使用する必要があります。次のようになります。
webBrowser1.SourceIpAddress = addr1;
(上記のコードは動作しません。単なる仮説的な例です。)
IP に関する誤解は、IP アドレスを偽造してもすべてが機能し続けるというものです。IP はそうは機能しません。Web ページのリクエストを送信すると、そのリクエストにアドレスが含まれます。しかし、それには十分な理由があります。リクエストの受信者が応答をどこに送信すればよいかを知るためです。
これはつまり、あなたができたIP アドレスを偽造しても、誰からも応答が返ってこなくなり、すべての応答が偽造されたアドレスに送信されます。そのため、このようなことをしても意味がありません。