100求教!如何控制程序自动选择走哪个网络代理服务器?

MasDn 2008-12-15 12:28:43
如何控制程序自动选择走哪个网络代理服务器?

问题有两个:
1:如何控制程序走我在外部配置的代理服务器进行上网.
2:有多个代理的服务器,如何根据连接的速度自动选择最快的呢.

现在有个程序,在电信的网内,然后需要跟网通的一个程序进行通信,我们就架了代理的服务器,
但是不知道怎么控制程序使用这个代理服务器进行通讯.这个程序不是我们做的,不能改其源码,
只能外部控制.
...全文
196 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
MasDn 2008-12-15
  • 打赏
  • 举报
回复
自己顶下
MasDn 2008-12-15
  • 打赏
  • 举报
回复
能详细解释下么 看不太明白啊
HDNGO 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 MasDn 的回复:]
我的这个程序是 应用程序不是IE浏览器, 不知道能不能控制呢??
[/Quote]

一个道理吧~
belldandy11 2008-12-15
  • 打赏
  • 举报
回复
关注
MasDn 2008-12-15
  • 打赏
  • 举报
回复
我的这个程序是 应用程序不是IE浏览器, 不知道能不能控制呢??
周公 2008-12-15
  • 打赏
  • 举报
回复
至于速度检测,你自己先通过程序ping一下,根据结果再决定用哪个代理服务器了。
周公 2008-12-15
  • 打赏
  • 举报
回复
自动代理检测是一个进程,系统使用该进程来标识 Web 代理服务器,并用于代表客户端发送请求。此功能也称作 Web 代理自动发现 (WPAD)。在启用自动代理检测后,系统将尝试找到一个代理配置脚本,该脚本负责返回可用于请求的代理集合。如果找到了该代理配置脚本,则在为使用 WebProxy 实例的请求获取代理信息、请求流或响应时,在本地计算机上下载、编译和运行该脚本。

自动代理检测由 WebProxy 类执行,并且可采用请求级别的设置、配置文件中的设置和使用 Internet Explorer 的“局域网 (LAN)”对话框指定的设置。

注意
可以通过以下方式显示 Internet Explorer 的“局域网 (LAN) 设置”对话框:在 Internet Explorer 主菜单中选择“工具”,然后选择“Internet 选项”。接下来,选择“连接”选项卡,然后单击“局域网设置”。


如果启用自动代理检测,WebProxy 类将尝试按如下所示找到代理配置脚本:

WinINet InternetQueryOption 函数用于定位 Internet Explorer 最近检测的代理配置脚本。

如果未能定位该脚本,WebProxy 类将使用动态主机配置协议 (DHCP) 定位该脚本。DHCP 服务器可以使用该脚本的位置(主机名)予以响应,也可以使用该脚本的完整 URL 予以响应。

如果 DHCP 未标识 WPAD 主机,则查询 DNS 以找到 WPAD 作为其名称或别名的主机。

如果未标识该主机,并且代理配置脚本的位置由 Internet Explorer LAN 设置或配置文件指定,则使用此位置。

注意
作为 NT 服务或作为 ASP.NET 的一部分运行的代理,使用其调用用户的 Internet Explorer 设置(如果可用)。这些设置可能不是对于所有服务应用程序都可用。


代理基于每个 connectoid 进行配置。connectoid 是网络连接对话框中的一项,可以是物理网络设备(调制解调器或以太网卡)或虚拟接口(例如,通过网络设备运行的 VPN 连接)。如果 connectoid 发生更改(例如,无线连接更改了访问点,或启用了 VPN),将再次运行代理检测算法。

默认情况下,Internet Explorer 代理设置用于检测代理。如果您的应用程序基于非交互式帐户运行(没有用于配置 IE 代理设置的简便方法),或者您要使用不同于 IE 设置的代理设置,则可以通过创建定义了 defaultProxy 元素(网络设置)和 proxy 元素(网络设置)元素的配置文件,对代理进行配置。

对于您创建的请求,可以如下面的代码示例所示,通过将空 Proxy 用于您的请求,禁用请求级别的自动代理检测。


public static void DisableForMyRequest (Uri resource)
{
WebRequest request = WebRequest.Create (resource);
request.Proxy = null;
WebResponse response = request.GetResponse ();
}

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧