如何使用Web代理绕过网络限制?

3

如果我想通过Web代理绕过类似于192.168.1.0/24的网络,是否有任何方法?

WebProxy proxy = new WebProxy();

proxy.ByPassList = ???
3个回答

6
您无法在代理创建后更改绕过列表。请使用以下构造函数重载:
Uri address = ...
proxy = new WebProxy(address, **true**); 

true的意思是“在本地绕过”,如果您使用192.168.1.0/24子网,则应该足够满足您的需求。

或者,如果您想添加自定义列表:

Uri address = ...
proxy = new WebProxy(address, true, new string[] {"192.168.1.1","intranet",...});

6
您可以在Internet Explorer中设置它,然后使用以下代码:

WebProxy proxy = (WebProxy) WebProxy.GetDefaultProxy(); 已弃用。

var iproxy = WebRequest.GetSystemWebProxy();
var url = new Uri("http://www.example.com");
var wp = new WebProxy();
wp.Credentials = iproxy.Credentials;
wp.Address = iproxy.GetProxy(url);

或者您可以尝试使用类似以下内容将"192.\.168\.1\.*"添加到proxy.BypassList中:

List<string> bypasslist = new List<string>(proxy.BypassList);
bypasslist.Add("192.\.168\.1\.*");
proxy.BypassList = bypasslist.ToArray();

谢谢,我正在尝试通过注册表获取Internet Explorer代理设置(headbang)... :-) - shahjapan
1
+1 但是警告1:'System.Net.WebProxy.GetDefaultProxy()'已过时:'此方法已被弃用。请使用默认情况下为您选择的代理。你知道有什么替代方案吗? - shahjapan
1
抱歉,我不知道它已被弃用。我之前使用 WebRequest.GetSystemWebProxy() 取得了成功。 - Jonas Elfström
192\.168\.\d{1,3}\.\d{1,3}[a-z]+\.labcrm2015rsg\.com$?是否有效https://www.nuget.org/api/* - PreguntonCojoneroCabrón

0

使用这个

WebProxy lb_proxy = new WebProxy("PROXY_IP", PROXY_PORT)
{
     BypassProxyOnLocal = true,
     BypassList = new string[] { "192.168.1.1", "192.168.1.2",...}
};
httpRequest.Proxy = lb_proxy;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接