forked from Moux23333/FreeSR
add other proxy detection for proxy
This commit is contained in:
parent
caf71ca841
commit
8dae0c0aed
1 changed files with 43 additions and 2 deletions
|
@ -1,4 +1,6 @@
|
||||||
namespace FreeSR.Tool.Proxy
|
using System.Net;
|
||||||
|
|
||||||
|
namespace FreeSR.Tool.Proxy
|
||||||
{
|
{
|
||||||
internal static class Program
|
internal static class Program
|
||||||
{
|
{
|
||||||
|
@ -6,10 +8,11 @@
|
||||||
|
|
||||||
private static ProxyService s_proxyService;
|
private static ProxyService s_proxyService;
|
||||||
private static EventHandler s_processExitHandler = new EventHandler(OnProcessExit);
|
private static EventHandler s_processExitHandler = new EventHandler(OnProcessExit);
|
||||||
|
|
||||||
private static void Main(string[] args)
|
private static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Console.Title = Title;
|
Console.Title = Title;
|
||||||
|
CheckProxy();
|
||||||
|
|
||||||
s_proxyService = new ProxyService("127.0.0.1", 8888);
|
s_proxyService = new ProxyService("127.0.0.1", 8888);
|
||||||
AppDomain.CurrentDomain.ProcessExit += s_processExitHandler;
|
AppDomain.CurrentDomain.ProcessExit += s_processExitHandler;
|
||||||
|
@ -21,5 +24,43 @@
|
||||||
{
|
{
|
||||||
s_proxyService.Shutdown();
|
s_proxyService.Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void CheckProxy()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string ProxyInfo = GetProxyInfo();
|
||||||
|
if (ProxyInfo != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("well... It seems you are using other proxy software(such as Clash,V2RayN,Fiddler,etc)");
|
||||||
|
Console.WriteLine($"You system proxy: {ProxyInfo}");
|
||||||
|
Console.WriteLine("You have to close all other proxy software to make sure FreeSR.Tool.Proxy can work well.");
|
||||||
|
Console.WriteLine("Press any key to continue if you closed other proxy software, or you think you are not using other proxy.");
|
||||||
|
Console.ReadKey();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (NullReferenceException)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetProxyInfo()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
IWebProxy proxy = WebRequest.GetSystemWebProxy();
|
||||||
|
Uri proxyUri = proxy.GetProxy(new Uri("https://www.example.com"));
|
||||||
|
|
||||||
|
string proxyIP = proxyUri.Host;
|
||||||
|
int proxyPort = proxyUri.Port;
|
||||||
|
string info = proxyIP + ":" + proxyPort;
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in a new issue