WebView2使用带有用户名和密码认证的Socks5代理-阿甘软件

WebView2使用带有用户名和密码认证的Socks5代理

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();

TODO

实现代理指定程序走代理

 
© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像domain rating0