实现代理指定程序走代理
WebView2 不能直接设置带有用户名和密码认证的 Socks5 代理,好在 aardio 可以很方便的调用 C# 编译的 dll,方法如下:
C# 源码中 Yove.Proxy 用的是开源项目:https://github.com/TheSuunny/Yove.Proxy
using System;
using Yove.Proxy;
namespace YoveProxy
{
public class Client
{
public string Socks5(string proxy, string username, string password)
{
Uri listenAddr = new Uri($"http://127.0.0.1:11223");//这个端口不用关注,实际使用的是socks5Proxy.GetProxy(listenAddr)返回的端口
ProxyClient socks5Proxy = new ProxyClient(proxy, username, password, ProxyType.Socks5);
return socks5Proxy.GetProxy(listenAddr).ToString().TrimEnd('/');
}
}
}
若需要指定本地端口,
修改 C# 源码 IPEndPoint(IPAddress.Loopback, 0)
为 IPEndPoint(IPAddress.Any, 12345)
实现的功能类似 pproxy 的这种用法:pproxy -l socks5://本地ip:本地端口 -r socks5://代理ip:代理ip端口#代理用户名:代理密码 -vv
编译生成 YoveProxy.dll,在 aardio 创建的工程中这样使用:
//启动参数 / 代理
import win.ui;
/*DSG{{*/
var winform = win.form(text="WebView2 - 设置代理";right=966;bottom=622)
winform.add()
/*}}*/
import dotNet;
import web.view;
var assembly = dotNet.load("YoveProxy",$"\res\YoveProxy.dll");
assembly.import("YoveProxy");
var proxyClient = YoveProxy.Client();
var listenAddr = proxyClient.Socks5("66.43.6.46:端口", "用户名", "密码");
var wb = web.view(winform,,"--proxy-server="+listenAddr);
wb.go("https://www.ip123.in/");
winform.show();
win.loopMessage();
没有回复内容