如何在C#.net中设置Internet Explorer的默认代理?
我想创建一个能够在.txt文件中搜索有效代理并使用它的浏览器
与set default proxy命令一起使用的IP和端口是有效的,但命令本身绝对没有任何作用。
我发现在VS2013 .net浏览器中使用代理的唯一方法是手动将其添加到IE中,这是非常无用的。
class Proxy
{
List<string> Proxy_IP;
List<int> Proxy_Port;
public Proxy()
{
Proxy_IP = new List<string>();
Proxy_Port = new List<int>();
populateProxyList();
}
public void findProxy()
{
for (sbyte i = 0; i < Proxy_IP.Count; i++)
{
string IP = Proxy_IP[i];
int Port = Proxy_Port[i];
if (isValid(IP, Port))
{
setDefaultProxy(IP, Port);
break;
}
}
}
private void populateProxyList()
{
string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\Proxies.txt");
foreach (string line in lines)
{
int endIP = line.IndexOf('#');
int startPort = endIP + 1;
int portLength = line.Length - (endIP + 2);
string IP = line.Remove(endIP);
int Port = Convert.ToInt32(line.Substring(startPort, portLength));
Proxy_IP.Add(IP);
Proxy_Port.Add(Port);
}
}
private void setDefaultProxy(string ip, int port)
{
System.Windows.Forms.MessageBox.Show(ip + ":" + port.ToString()); // Proxy is valid
System.Net.WebRequest.DefaultWebProxy = new WebProxy(ip, port); // Doesn't do shit
}
private bool isValid(string IP, int Port)
{
bool pingable = false;
Ping pinger = new Ping();
try
{
PingReply reply = pinger.Send(IP);
pingable = reply.Status == IPStatus.Success;
}
catch (PingException)
{
}
return pingable;
}
答案 0 :(得分:1)
如MSDN DefaultWebProxy页面http://msdn.microsoft.com/en-us/library/system.net.webrequest.defaultwebproxy%28v=vs.110%29.aspx中所述,
DefaultWebProxy属性从app.config中读取代理设置 文件。如果没有配置文件,则为当前用户的Internet Explorer (IE)使用代理设置。
因此,如果您的问题是关于仅设置代理以便在Visual Studio中浏览(2013为您),则应在Visual Studio的配置文件中添加代理信息 ,命名为“devenv.exe.config”:
<system.net>
<defaultProxy useDefaultCredentials=“true“ enabled=“true“>
<proxy bypassonlocal=”true” proxyaddress=”http://yourproxyaddress.net:proxyPort” />
</defaultProxy>
</system.net>
有关详细信息,请参阅此文章:http://en.code-bude.net/2013/07/15/how-to-setup-a-proxy-server-in-visual-studio-2012/
如果您的问题是关于为所有浏览器设置代理(即:defaut internet proxy),您应该使用PInvoke并更改注册表设置:请参阅此处的响应How to change Global Windows Proxy using C# .NET with `Immediate Effect`
答案 1 :(得分:1)
WebProxy webProxy = (WebProxy) WebRequest.DefaultWebProxy;
if (webProxy.Address.AbsoluteUri != string.Empty)
{
Console.WriteLine("Proxy URL: " + webProxy.Address.AbsoluteUri);
}