我正在尝试使用自定义(用户提供的)IP 地址浏览网页,但是不起作用。webBrowser1 成功加载网页,但它没有使用自定义 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 协议(用于访问互联网上的网站)的原理存在重大误解。
C# 的误解在于,您只是创建了一个表示 IP 地址的对象,并期望计算机能够读懂您的想法,了解该 IP 地址的含义。如果这样的事情是可能的,您需要在代码中以某种方式使用 IP 地址。它可能看起来像这样:
webBrowser1.SourceIpAddress = addr1;
(上述代码不起作用,这只是一个假设的例子。)
IP 误解是,您可以伪造您的 IP 地址,而一切仍会继续运行。但 IP 的工作方式并非如此。当您发送某个网页的请求时,您的地址包含在该请求中。但这样做有一个很好的理由:这样您的请求的接收者就知道将他的响应发送到哪里。
这意味着你可以伪造您的 IP 地址,但您永远不会收到任何人的回复,所有回复都会发送到伪造的地址。因此,这样做是没有用的。