当前位置:   article > 正文

pac全自动代理_findproxyforurl

findproxyforurl

一个PAC文件包含一个JavaScript形式的函数“FindProxyForURL(url, host)”。

它是一段JavaScript 脚本:

  1. function FindProxyForURL(ur1,host)
  2. {
  3. return"DIRECT"
  4. }

上面就是一个最简洁的PAC文件,意思是所有流量都直接进入互联网,不走代理。
PAC 语法和函数
上面函数中,url字段就是我们在浏览器地址栏输入的待访问地址,host为该地址对应的hostname,return 语句有三种指令:
DIRECT,表示无代理直接连接
PROXY host:port,表示走host:port的proxy 服务
SOCKS host:port,表示走host:port的socks服务
而返回的接口可以是多个代理串联:

return"PROXY 222.20.74.89:8800;SOCKS 222.20.74.89:8899;DIRECT"

上面代理的意思是,默认走222.20.74.89:8800的proxy服务;如果代理挂了或者超时,则走222.20.74.89:8899的socks代理;如果 socks也挂了,则无代理直接连接。
PAC提供了几个内置的函数,下面挨个介绍下:

dnsDomainls

类似于==,但是对大小写不敏感,

  1. if(dnsDomainIs(host,"google.com")||
  2. dnsDomainIs(host,"www.google.com"))
  3. {
  4. return"DIRECT"
  5. }

shExXpMatch Shell

正则匹配,*匹配用的比较多,可以是*http:/∥example.com,也是可以下面这样,

  1. if(shExplMatch(host,"vpn.domain.com)l|
  2. shExplMatch(ur1,"http://abcdomain.com/folder/*"))
  3. {
  4. return"DIRECT";
  5. }

isInNet

判断是否在网段内容,比如10.1.0.0这个网段,10.1.1.0就在网段中,

  1. if(isInNet(dnsResolve(host),"172.16.0.0""255.240.0.0"))
  2. {
  3. return"DIRECT"
  4. }

mylpAddress

返回主机的IP

  1. if(isInNet(myIpAddress(),"10.10.1.0""255.255.255.0))
  2. {
  3. return"PROXY 10.10.5.18080";
  4. }

dnsResolve

通过DNS查询主机ip
 

  1. if(isInNet(dnsResolve(host),"10.0.0.0""255.0.0.0)||
  2. isInNet(dnsResolve(host),"172.16.0.0","255.240.0.0)l|
  3. isInNet(dnsResolve(host),"192.168.0.0""255.255.0.0)||
  4. isInNet(dnsResolve(host),"127.0.0.0","255.255.255.0"))
  5. {
  6. return"DIRECT";
  7. }

isPlainHostName

判断是否为诸如http://barret/,http://server-name/这样的主机名
 

  1. if(isPlainHostName(host))
  2. {
  3. return"DIRECT"
  4. }

isResolvable

判断主机是否可访问

  1. if(isResolvable(host)){
  2. return"PROXY proxyl.example.com:8080"
  3. }

举例一个全自动代理VPN服务器

  1. function FindProxyForURL(url, host) {
  2. if (shExpMatch(host, '10.134.*.*')) //地址是需要访问的地址
  3. {
  4. return 'PROXY *.*.*.*:端口';
  5. }
  6. else if (shExpMatch(host, '172.16.*.*')) //地址是需要访问的地址
  7. {
  8. return 'PROXY *.*.*.*:端口';
  9. }
  10. else
  11. {
  12. return 'DIRECT';
  13. }
  14. }

如何使用

先介绍一下设置各个系统代理的方法。
Windows
Internet选项--连接 选项卡--局域网设置(如果是电脑拨号上网, 这里点'设置')-- 使用自动配置脚本--填入PAC地址--确定 
Mac OS X
系统设置 -- 网络 --高级 --代理 --自动代理配置 --URL中填入PAC地址 -- 好

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/633064
推荐阅读
相关标签
  

闽ICP备14008679号