pac全自动代理

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

它是一段JavaScript 脚本:

function FindProxyForURL(ur1,host)

{ 

return"DIRECT";

}

上面就是一个最简洁的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

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

if(dnsDomainIs(host,"google.com")||
dnsDomainIs(host,"www.google.com"))

{
return"DIRECT";

}

shExXpMatch Shell

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

if(shExplMatch(host,"vpn.domain.com)l|
shExplMatch(ur1,"http://abcdomain.com/folder/*"))

{
return"DIRECT";

}

isInNet

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

if(isInNet(dnsResolve(host),"172.16.0.0","255.240.0.0"))

{
return"DIRECT";

}

mylpAddress

返回主机的IP

if(isInNet(myIpAddress(),"10.10.1.0","255.255.255.0))

{
return"PROXY 10.10.5.1:8080";

}

dnsResolve

通过DNS查询主机ip
 

if(isInNet(dnsResolve(host),"10.0.0.0","255.0.0.0)||
isInNet(dnsResolve(host),"172.16.0.0","255.240.0.0)l|

isInNet(dnsResolve(host),"192.168.0.0","255.255.0.0)||
isInNet(dnsResolve(host),"127.0.0.0","255.255.255.0"))

{
return"DIRECT";

}

isPlainHostName

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

if(isPlainHostName(host))

{
return"DIRECT";

}

isResolvable

判断主机是否可访问

if(isResolvable(host)){
return"PROXY proxyl.example.com:8080";

}

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

function FindProxyForURL(url, host) {
    if (shExpMatch(host, '10.134.*.*'))   //地址是需要访问的地址
  {
	return 'PROXY *.*.*.*:端口';
  }
  
  else if (shExpMatch(host, '172.16.*.*'))  //地址是需要访问的地址
  {
	return 'PROXY *.*.*.*:端口';
  }
 
  else
  { 
	return 'DIRECT';
   }
}

如何使用

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

猜你喜欢

转载自blog.csdn.net/qq_22903531/article/details/105432833
PAC
今日推荐