【发布时间】:2013-12-26 09:46:35
【问题描述】:
如何在 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;
}
【问题讨论】: