V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sponsored by
LinkedIn
2000 个不用坐班的远程好工作在召唤你 · 弹性上班不打卡,工作和生活都能拥有
2000 个不用坐班的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
magese
V2EX  ›  程序员

如何实现浏览器代理 IP 的自动切换

  •  
  •   magese ·
    magese · 272 天前 · 2407 次点击
    这是一个创建于 272 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个接口会返回代理 IP 的 JSON ,类似于:

    {
        IP: "188.18.18.188",
        port: "40096",
        deadline: "2021-12-26 02:02:02",
        host: "188.18.18.188:40096"
    }
    

    有没有啥浏览器插件会自动请求我的接口,并根据返回结果自动设置代理 IP 的 hostport

    能自己写脚本的插件也行,谢谢各位大佬了。

    第 1 条附言  ·  272 天前

    image.png

    我现在写了个接口返回 PAC 配置文件。

    但是问题又来了,SwitchyOmega 只支持最低15分钟自动更新一次脚本。

    而我的代理 IP 几乎每 1 - 2 分钟就会更新一次,这咋办呢。

    14 条回复    2021-12-27 12:48:50 +08:00
    Grouie
        1
    Grouie  
       272 天前 via iPhone
    现成的好像没有,自己写的话可以本地写个 python 程序来作端口转发,本地监听的端口固定,目标 host 请求你的 ip 获取,浏览器设置代理到本地监听的端口。
    cwcc
        2
    cwcc  
       272 天前
    感觉可以套个娃解决,开个自己的代理服务器,然后通过脚本切换。
    go233
        3
    go233  
       272 天前 via iPad
    @crazywhalecc 同意这个方案
    jinliming2
        4
    jinliming2  
       272 天前   ❤️ 2
    关键词:PAC ( Proxy auto config ),然后用 SwitchyOmega 就行。
    前提是把你的接口返回改掉,不是返回 JSON 了,而是返回一个 PAC 文件(就是个 JS 文件)。
    magese
        5
    magese  
    OP
       272 天前
    @jinliming2 多泄老哥,感觉这个方法可行,我去试下
    ezrameow
        6
    ezrameow  
       272 天前
    @jinliming2 是不是可以直接用 PAC 去请求这个 API 解析,起一个中间翻译层的作用?
    ch2
        7
    ch2  
       272 天前
    chrome 插件很简单的
    ```
    var config = {
    mode: "pac_script",
    pacScript: {
    data: "function FindProxyForURL(url, host) {\n" +
    " if (shExpMatch(url,\"*.baidu.com/*\")) " +
    " return 'PROXY 188.18.18.188:40096';\n" +
    " return 'DIRECT';\n" +
    "}"
    }
    };
    chrome.proxy.settings.set(
    {value: config, scope: 'regular'},
    function() {}
    );
    ```
    magese
        8
    magese  
    OP
       272 天前
    @jinliming2
    @ch2

    老哥们我 append 了一些,现在问题又来了,如何设置在每次请求前都会更新一次 PAC 脚本呢
    ch2
        9
    ch2  
       272 天前
    @magese #8 只能你自己写插件了,或者按楼上的方法固定先转发到本地的 python 之类的,python 再转发给代理
    jinliming2
        10
    jinliming2  
       272 天前
    @ezrameow #6 PAC 里应该是不支持请求接口的,这个应该是需要立即同步返回的。

    @magese #8 每次请求前都更新的话,你访问页面的速度就会非常慢了。建议是改成 1 分钟或 30 秒后台自动更新一次。
    这个应该没有现成的扩展了,像 #7 那样自己写个扩展很快的,或者 SwitchyOmega 是开源的(商店上有 GitHub 地址),clone 下来自己改更新频率也行。
    CallMeReznov
        11
    CallMeReznov  
       272 天前
    为什么不像普通的转发软件一样呢在本地监听 8080
    订阅和更换代理都是通过那个本地转发软件来处理呢?
    aladdinding
        12
    aladdinding  
       271 天前
    在加一层转发
    root01
        13
    root01  
       271 天前
    新建多个情景模式
    AmiKara
        14
    AmiKara  
       271 天前
    Proxy SwitchySharp
    可以自定义规则
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2251 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 16:08 · PVG 00:08 · LAX 09:08 · JFK 12:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.