【问题标题】:C# list of proxiesC# 代理列表
【发布时间】:2011-06-28 02:35:12
【问题描述】:

我正在通过 C# 使用代理,想知道是否有人知道管理它们的好方法。

如您所知,代理的状态会随着时间的推移而变化,因此应稍后重试或删除那些出现问题的代理。什么是维护这个代理列表的好方法,以便使用最好的代理,而那些失败的代理不会被经常使用或在超时后使用等等......

我所指的代理类型只是可以应用于 HttpWebRequest 的 WebProxy。

尽量减少使用错误代理的请求数量也很重要。

【问题讨论】:

  • 你在说什么样的代理? .net 远程代理?
  • 只是一个可以应用于 httpwebrequest 的典型 ip:port 代理

标签: c# proxy


【解决方案1】:

如果我理解您的意思,您说的是用于连接 Web 服务器的 HTTP 代理,不是,例如 WCF 代理或 RPC 代理。 p>

奇怪的是,您的程序似乎会使用多个。这确实是一个非常罕见的程序!我们大多数人只是使用操作系统配置中内置的默认设置。代理服务器突然停机的想法似乎更加罕见。您是否打算为您的请求随机选择一个代理?您只是想找到代理服务器吗?

无论如何,您知道代理 服务器是否无法工作的唯一方法是检查response.StatusCodeBadGatewayGatewayTimeout 应该可以解决问题。

所以...管理哪些是好的,哪些是坏的。我会坚持使用以代理 URI 为键的简单字典,并将 WebProxy 对象作为值。假设我了解您要做什么,如果您尝试使用代理 URI 并且很好,请将其添加到字典中。如果您发现现有代理有问题,请将其从字典中删除。

【讨论】:

  • 对不起,我的问题有点神秘。我正在使用从互联网收集的网络代理,它们会间歇性地上升/下降。我可以很容易地检查它们是否有效。我不一定要立即删除代理,只是为了保留我拥有的所有代理的列表,但使用最常用的代理。我正在考虑优先队列。
  • 好的,很公平。优先队列似乎是您最好的选择。
【解决方案2】:

我认为优先级队列可能太多了。此外,您打算使用什么优先级或多个优先级对代理列表进行分类?

我认为在这种情况下,更简单的设计可能会更好:两个“桶”或两个 FIFO 列表,一个用于推送最新的有效代理,另一个列表用于推送不工作的代理。

然后你从他们两个中弹出代理IP地址再次检查。您可以决定更频繁地检查哪些代理列表。

proxy-ip-list.com 等具有代理 IP 列表的网站可能使用类似的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2020-12-03
    • 2012-03-03
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多