`
wuzhizhemu
  • 浏览: 17086 次
社区版块
存档分类
最新评论

编写PAC文件

阅读更多
今天无意间接触到有人说可以自己写代理于是就查找了资料自己谢了一个简单的代理。
这里写的非常简单,只用到了几个简单的函数,下面进行简单的介绍:
pac文件就是扩展名是pac的一个文件,里面的方法都是javascript编写的,懂javascript就不必多说了,即使一点不懂的也应该很容易看明白。
下面开始介绍一下文件的写法,首先是文件中必须用到的一个函数:FindProxyForURL(url,host),PAC文件中必须包含这个函数,因为只要文件被引入调用就会查找这个函数,然后根据里面设置的规则进行匹配。
首先来一个最简单的pac文件的代码。
        function FindProxyForURL(url, host) {
    		return "DIRECT";
	}
        

上面是非常简单的一个javascript函数,只有一个返回值是一个字符串"DIRECT",在这里“DIRECT”的意思是直接连接,不通过代理。
FindProxyForURL(url, host)3种常用的返回值:
1)DIRECT 这个很简单就是直接链接
2)"PROXY www.example.com:8080"或者"PROXY 127.0.0.1:8080" 这个就是HTTP代理的主机和端口值,主机可以是域名或者IP地址
3)"SOCKS5 socks5sample.com:1080" socks5代理的主机和端口,主机也可以用IP表示
4)最后一种就是多种混用的返回方式:"DIRECT ; PROXY www.example.com:8080; SOCKS5 socks5sample.com:1080"就是先直接连接,直接连接不可用再调用HTTP代理,还不可用就再调用SOCKS5代理
上面的代码其实是没有什么意义的,因为直接连接还不如不设置,浏览器本身就是直接链接。下面介绍几个有用的函数来丰富我们上面的代码,使pac文件真正的起到代理的作用。
1) shExpMatch(str, shexp)函数,
功能:看str能否匹配shexp
参数介绍:
str参数一般就传入FindProxyForURL(url, host)中的url,这也就是我们要访问的网址,
shexp这个参数从名字上也能看出一点来,不错这个是一个可以让我们过滤出满足条件的正则表达式(这个如果不会可以自己去调查,这里不做介绍。)
返回值: boolean(true/false),str匹配shexp成功则返回true失败则返回false
举例:shExpMatch("www.google.com","*.google.*")  返回true
    shExpMatch("www.google.com","*.baidu.*")  返回false
这样我们就可以接下来这么写:
       
        function FindProxyForURL(url, host){
		if(shExpMatch(url,"*.google.*")){
		    return "127.0.0.1:8087";
		} else {
		    return "DIRECT";
		}
	}
        


简单的代码就写到这里,还有更复杂的就不介绍了,可以自己去写,然后下面提供一下写PAC文件常用的一些函数,传送门:http://www.truevue.org/javascript/pac-functions
分享到:
评论

相关推荐

    pac文件自动配置网络

    它是一种使用 JavaScript 语言编写的文本文件,用于指定在访问特定网址时应使用哪个代理服务器或直接连接。PAC 文件主要用于在企业和组织网络中实现代理自动配置,以便管理和控制网络访问。 工作原理: 当用户试图...

    pacgen:代理Pac文件生成器,将pac文件作为Web服务器

    这个文件是基于JavaScript编写的,符合PAC文件的规范。 3. **部署PAC文件**:生成的PAC文件需要被部署到一个Web服务器上,可以是企业内部的HTTP服务器,也可以是公共的云服务器。这一步骤的目的是让客户端能够通过...

    PAC_V30模块GSD文件V2.34版本_20191014.zip

    而"GSDML-V2.34-Siemens-PAC_V30-20191014.xml"是GSD文件的XML格式版本,由Siemens公司编写,详细描述了PAC_V30模块在网络中的行为和配置参数,可以被编程工具或PLC配置软件读取。 总的来说,这个压缩包提供了PAC_...

    proxy-pac:pac文件生成

    在PAC文件中,JavaScript语言被用来编写逻辑,判断何时使用代理服务器,何时直接连接到互联网。通常,这个逻辑会包含一个名为`FindProxyForURL(url, host)`的函数,它会根据输入的URL和主机名返回一个字符串,指示...

    2-辨识完成的PAC模型,pac检验模型,matlab

    在MATLAB中,用户可以通过编写脚本来实现PAC模型的运行和分析。例如,"readtire.m"可能首先读取tir文件中的轮胎特性参数,如弹性模量、剪切模量等,然后"main1.m"会利用这些参数调用"PAC2002.m"中的函数,计算不同...

    pacparser:用于解析代理自动配置(PAC)文件的库

    PAC文件是用JavaScript编写的,可以编程以返回不同的代理方法(例如"PROXY proxy1:port; DIRECT" ),具体取决于URL,源IP地址,协议,一天中的时间等。PAC文件引入了很多可能性。 请查看Wikipedia条目以了解代理...

    proxy4safari-pac-file:个人配置文件

    标签 "JavaScript" 表明这个PAC文件的内容是用JavaScript编写的。JavaScript在PAC文件中被用来编写逻辑,判断何时以及如何使用代理。PAC文件通常包含一个名为`FindProxyForURL(url, host)`的函数,这个函数会根据...

    pacmanager:将pac文件提供给webbrowser

    例如,你可以编写自定义脚本生成PAC文件,或者使用Python库(如BeautifulSoup或requests)来分析和测试PAC文件的配置。 **使用PacManager** 要使用PacManager,首先需要安装其Python包,通常可以通过pip完成。然后...

    pac.rar_pac

    标题中的"pac.rar_pac"很可能是指一个名为“pac”的项目或软件的源代码压缩包,后缀为".rar",表明它是一个RAR格式的压缩文件。描述中提到"java source code program",这意味着这个压缩包包含的是用Java编程语言...

    OPTO PAC9.0.rar

    标题中的"OPTO PAC9.0.rar"是一个压缩文件,主要包含的是OPTO PAC开发软件的9.0版本。OPTO PAC(可能是“Opto Programmable Automation Controller”的缩写)是一款专为自动化控制设计的软件工具,用于编程、配置和...

    PorxyPac:用于Mac自动代理的pac发布服务

    JavaScript允许在PAC文件中编写复杂的逻辑,以决定何时使用代理,何时直接连接。 PorxyPac项目提供了两种方法来设置和更新Mac上的PAC文件: 1. 本地文件服务:用户可以通过运行提供的`app.js`脚本来启动一个本地...

    Proxy Switcher-crx插件

    语言:English 通过工具栏弹出轻松在多个代理之间切换。 Proxy Switcher是一个扩展,可帮助您从工具栏弹出UI轻松切换代理。 只需打开工具栏弹出窗口,然后...如果您不知道如何编写PAC文件,请阅读此(https://en.wiki

    食用油精炼厂GE PAC7i PAC3i(离心机) 控制程序

    2. GE Proficy Machine Edition 7.0:作为编程和配置工具,用于编写和管理PAC7i和PAC3i的控制逻辑。 3. LAD编程:通过梯形图实现控制系统的逻辑控制。 4. 工业通信:可能涉及到的工业协议和网络连接。 5. 项目文件:...

    PAC编程基本教程+简易版contorllogix冗余

    在压缩包内的文件“PAC编程基本教程-适用于罗克韦尔自动化Logix 控制器.pdf”可能涵盖以下内容: 1. PAC的基本概念和优势。 2. Logix控制器家族的介绍,包括ControlLogix和CompactLogix等。 3. RSLogix 5000编程软件...

    Pac - Man.rar_Pac-M_pac_pac man_pac man game java

    在Pac-Man.rar压缩包中,我们可以看到两个关键文件:“www.pudn.com.txt”和“Pac - Man”。前者可能是一个文本文件,包含了关于游戏发布或源代码存放位置的信息,通常这类文件用于记录资源的来源或版权信息。后者...

    ROI_PAC用户指南

    这些功能模块主要使用Fortran或C语言编写。例如,`process.pl`作为主流程控制脚本,负责整个处理过程;`make_raw.pl`用于SAR原始数据整理;`roiSAR`完成SAR成像;`ampcor`用于图像配准;`resamp_roi`生成干涉图;`...

    GE PAC常用操作演示.rar

    这个“GE PAC常用操作演示.rar”压缩包文件很可能包含了一系列关于如何使用和配置GE PAC控制器的教程或演示资料,旨在帮助用户理解和掌握其基本及高级功能。 GE PAC控制器的特点和功能主要包括: 1. **灵活性**:...

    用于 RP2040微控制器的 Rust PAC_Rust_代码_相关文件_下载

    "rp2040-pac-main" 文件很可能是这个 PAC 库的核心部分,包含主要的 Rust 代码,用于定义 RP2040 上所有外设的结构体和方法。在解压后,开发者可以通过导入这个库,并使用其中定义的结构体来操作 RP2040 的外设。 ...

    proxy_resolver_v8.rar_proxy pac

    ProxyResolver是网络代理解析器,它的功能是解析和执行PAC文件,而V8是Google开发的一个开源、高性能的JavaScript引擎,广泛用于Chrome浏览器和其他基于Chromium的项目。通过集成V8,这个实现能够高效地运行包含复杂...

Global site tag (gtag.js) - Google Analytics