欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 运维知识 > windows >内容正文

windows

pac (pac(proxy auto config) 是一个 script;经由编写这个 script,我们可以让系统判断在怎么样的情形下,要利用哪一台 proxy 来进行联机。)... -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 windows 43 豆豆
pac自动代理文件格式,教你如何写pac文件

pac文件格式

pac文件是纯文本格式的,实际上就是javascript文件。chrome/chromium的扩展switchy!的"auto switch mode"功能实际上也是创建和维护一个简单的pac文件,但功能比较弱。

对于一般的应用,即使你几乎不懂javascript和编程,也可以通过本文的介绍实现基本的功能。

pac文件findproxyforurl函数 

pac文件中必须包含一个函数:findproxyfor。

参数url是用户输入的url,参数host是url中的主机名。

比如url为http://www.truevue.org/javascript/pac-proxy-setting,那么host就是www.truevue.org

一个最简单的pac文件内容如下:

 

function findproxyfor {return "direct"; }

 

这个pac文件实际上什么也没做,对任何url,都将"direct"(直接连网)。

pac文件返回值类型

除了可以return "direct"以外,还有两种常用方式:

proxy proxysample.com:8080

http代理的主机和端口,主机也可以用ip表示

socks5 socks5sample.com:1080

socks5代理的主机和端口,主机也可以用ip表示

那么,我们可以猜测到,用pac指定一个http代理应该这样写

 

function findproxyfor {return "proxy 192.168.1.1:3128"; }

 

甚至可以指定多个代理    

 

function findproxyfor {return "direct; proxy 192.168.1.1:3128; socks5 lilinux.net:1080"; }

 

这句语句的意思是: 

  • 对所有url,都直接连接; 
  • 如果不能直接连接,那么就使用192.168.1.1:3128这个http代理连接;
  • 如果还是不能连接,则使用lilinux.net:1080这个socks5代理连接。
  • 使用不同连接的顺序和语句中的顺序一致,你可以根据自己的实际情况更改。

    也许你明确知道哪些网站不能直连,必须用proxy或者socks5连接,那么可以对站点分别指定代理配置 

     

    function findproxyfor {if (shexpmatch(url,"*.google.com/*")) {return "proxy 192.168.1.1:3128";}if (shexpmatch(url, "*.wikipedia.com:*/*")) {return "socks5 lilinux.net:1080";}if (isinnet(host, "10.0.0.0", "255.0.0.0")){return "direct";}return "direct; proxy 192.168.1.1:3128; socks5 lilinux.net:1080"; }

     

    这个pac文件中引入了两个新的函数,但从字面意思上,我们也可以猜出代码的大概意思:

  • 当url是*.google.com/* 时,自动使用proxy代理;
  • 当url是*.wikipedia.cm/*时,自动使用socks5代理;
  • 当host是10.0.0.0 /255.0.0.0的子网内时,自动直连;
  • 如果都不匹配,则依次按direct、proxy、socks5的次序尝试。 
  • shexpmatch函数用来匹配url或者host,匹配的方式和dos的通配符相似。例如前面用到的"*.google.com/*"可以匹配任意包含".google.com/"的字符串。 

    chrome/chromium 的扩展switchy!创建的pac文件还自定义了一个函数,可以用来匹配正则表达式,不过个人认为在url匹配上通常不需要使用强大的正则表达式。 

    isinnet函数用来返回请求的host是否在指定的域内。值得注意的是,isinnet的第二个参数必须是 ip,不能是主机名。因此需要把主机名转换成ip。比如"isinnet(host, dnsresolve(www.google.com), "255.255.255.0")"讲到这里,应该可以解决你的问题了吧。

    pac文件可以使用的javascript函数

    当然pac也不止这么简单,它还提供了不少其它函数,在本文就不详细讲述了。http://www.truevue.org/javascript/pac-functions 中列出了pac代理文件中可以使用的javascript函数。

    你也许想把pac文件发布到internet上,这样其它用户就只需要在浏览器中指定pac文件的url即可。你得配置你的服务器映射 .pac 文件后缀到mime类型: application/x-ns-proxy-autoconfig 如果使用的是netscape服务器,编辑 config 目录下的 mime.types 文 件。如果是apache, cern or ncsa服务器,使用 addtype 指令。

    转载于:https://www.cnblogs.com/tongbiao/p/6806547.html

    总结

    以上是凯发ag旗舰厅登录网址下载为你收集整理的pac (pac(proxy auto config) 是一个 script;经由编写这个 script,我们可以让系统判断在怎么样的情形下,要利用哪一台 proxy 来进行联机。)...的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

    网站地图