C# 如何在windows窗体应用程序中频繁更改我的IP?

C# 如何在windows窗体应用程序中频繁更改我的IP?,c#,winforms,web-scraping,netsh,C#,Winforms,Web Scraping,Netsh,我有一个安全课程项目。它要求进入一个给定的网站并下载其信息20次(该网站有20个子页面),然后解析等等。我使用c#的downloadstring来下载和解析页面。然而,在第五次之后,网站发现我是作为一个机器人(以编程方式)进行下载的 在第六次请求之前,我创建的程序是成功的。 我下载内容并解析所需的信息。当我到达第六个子页面时,我的电脑被阻止。 它与时间间隔无关。因为,我使用了6-12秒之间随机生成的超时。然而,这并没有帮助。这肯定与网页的输入计数器有关。这就像“在30分钟内5次请求后不给予许可。

我有一个安全课程项目。它要求进入一个给定的网站并下载其信息20次(该网站有20个子页面),然后解析等等。我使用c#的downloadstring来下载和解析页面。然而,在第五次之后,网站发现我是作为一个机器人(以编程方式)进行下载的

在第六次请求之前,我创建的程序是成功的。 我下载内容并解析所需的信息。当我到达第六个子页面时,我的电脑被阻止。 它与时间间隔无关。因为,我使用了6-12秒之间随机生成的超时。然而,这并没有帮助。这肯定与网页的输入计数器有关。这就像“在30分钟内5次请求后不给予许可。如果超过限制,则将其阻止一天(或更长时间)”。从那以后,我被封锁了很多次。我正在使用手机的热点

我在网上搜索时找到了一个解决方案。人们正在通过netsh等使用IP更改方法。然而,我认为我的IP是静态的(WiFi),我不知道如何在C#Windows窗体应用程序中以编程方式更改它。
因此,我想听听你的想法

如果您确实需要通过不同的IP地址发出请求,您可以将应用程序链接到多个不同的代理,并每隔一段时间在它们之间切换

此外,您提到您的IP是静态的,但本地IP和外部IP地址之间存在差异。提供给您的WiFi连接的IP地址是本地的,但Internet站点可以看到的外部IP地址不同

如果您有一个动态的外部IP地址,一个选项可能能够以编程方式连接到路由器并重新启动它。这是一种触发IP地址更新的方法,如果您确实有权访问它


总的来说,你所做的事情很难实现,因为听起来很简单。

你的ISP很可能会给你一个单一的动态IP地址,这是你的计算机接入互联网(即WAN)的IP地址。如果是这样,他们控制IP,而不是你。即使您有一个家庭网络,其中多台计算机都位于不同的本地IP地址(LAN)上,您仍然没有更改WAN IP地址,而WAN IP地址正是被有效阻止的地址


此外,我不打算进行评判,但我要说的是,如果这是一个实际的课程项目,那么从道德上讲,你的导师很可能不希望你敲打一个无辜的网站,就像网站所有者希望你敲打它一样,因此会被阻止。我的建议是将你的网站设置在另一个网站上,该网站没有阻止完成你的课程。也许你可以针对Google.com这样做?

这里有一个相当复杂且古怪的解决方案,但是,它可以很好地解决这个问题。创建4个Amazon EC2 t2.micro实例(Windows),并分别从EC2实例发出5个请求。您可以将结果存储到S3存储桶中。要让它工作起来,你需要做很多工作,但你最终也会有在云中工作的第一次体验。每个实例都有不同的IP

另外,如果您将同一个实例上下旋转几次,那么在任何情况下都不可能拥有相同的ip,因此您可以轻松地获得一个实例


更严肃地说:尝试更改用户代理字符串,并在请求之间添加更大的时间量(分钟、小时)。另外,在每五个请求之间打开和关闭热点,这可能会每次为您提供一个新的IP。

您是否尝试过在请求之间添加延迟?你用什么做用户代理?就像我说的,我用了超时。他们在两次请求之间。站点根据pc的ip统计请求。那是肯定的。我需要更改我的IP。超时与延迟不同,当请求在一段时间内未完成时,超时“超时”。那么,如果你用Chrome/FF/IE访问这个网站,如果你点击5个以上的内部链接,会不会把你踢出去?这个网站是什么?您是否在请求头中包含任何用户代理?我不知道您所说的用户代理是什么意思。如果它与我如何解析我刚才使用的c#的downloadstring(url)数据有关,那么我会进行一些字符串操作以获得所需的数据。这是一个术语项目。这个问题有点难。当你在谷歌上输入“What is my IP”时,你看到的是我想要改变的。我想我的路由器的IP是静态的,因为我现在住在宿舍里。改变你的外部IP在那时是不可行的。但是,您可以使用某种proxy.LOL。我喜欢它。太夸张了,但有点“一便士换一英镑”的优雅。是的,这不仅仅是一点愚蠢。然而,云肯定是摆脱特定机器限制的一种方法。添加了最后一段,其中包含了一些不太难尝试的事情。由于重新连接到WiFi只会让你获得一个新的IP,我建议更频繁地这样做(在每次请求之后?你无论如何都要等待,所以谁在乎呢)不一定。您可能正在使用DHCP获取IP,但路由器可能会根据您的MAC地址为您提供固定IP。但是,这没有什么区别,因为这将是一个局域网IP而不是您的广域网IP。