因为有朋友在深圳大学,他们学校的网络比较变态。如果访问了教育网指定的免费IP之外的IP,每M 6元钱。
我本来想教她用二级代理之类的,不过无奈这个对她来讲太难了。所以权宜之下,我只好让她使用IE的自动配置脚本文件来限制以防万一,至少能保证她在使用浏览器上网的时候不会因为不小心访问了收费的IP而挨宰。
虽然说这么变态的学校不多,但是终究还是有的,所以把自动配置脚本文件的写法写出来,如果有需要的朋友可以参考着来。
首先我们先来介绍一下自动配置脚本文件:
打开IE,点击"工具"--"Internet选项"--"局域网设置",你就可以看到"使用自动配置脚本"
自动配置脚本起的作用就是,当IE访问网页的时候会根据脚本文件里面界定的内容来访问。比方说,你在脚本文件里面限定了访问某些IP使用某个代理的时候,访问另外一些IP使用另外的代理,这就很方便通过脚本文件来完成。
一个PAC文件其实就是一个文本文件,最简单的格式就是包含一个叫FindProxyForURL的JScript函数,IE通过传入两个变量来调用这个函数,一个是用户浏览的地址URL全路经,一个是这个URL中的主机名部分(host)。
这个FindProxyForURL函数有三种可能的字符串返回值,一是"DIRECT",就是直接连接,不通过代理;二是"PROXY proxyaddr:port",其中proxyaddr和port分别是代理的地址和代理的端口;三是"SOCKS socksaddr:port",其中socksaddr和port分别是socks代理的地址和端口,一个自动代理文件可以是多个选择的组合,其中用分号(;)隔开,如:
function FindProxyForURL(url,host)
{
if (host == "www.mydomain.com")
return "DIRECT";
return "PROXY myproxy:80;
PROXY myotherproxy:8080;
DIRECT";
}
下面是代理脚本可能用到的函数和说明(英文不好的朋友可以直接跳过去看应用):
PAC Helper Functions
dnsDomainIs(host, domain) Returns true if the host is part of the specified domain, false otherwise.
isInNet(hostname, Resolves the hostname and subnet IP, subnet mask) returns true if the hostname is within the subnet
specified by the IP address and the subnet mask, false otherwise.
isPlainHostName(host) Returns true if there are no dots in the hostname, false otherwise.
isResolvable(host) Internet Explorer tries to resolve the hostname through DNS and returns true if successful, false otherwise.
localHostOrDomainIs Returns true if the host matches (host, domain) the host portion of the domain, or if the host matches the host and domain portions of the domain, false otherwise. (Executed only for URLs in the local domain.)
dnsDomainLevels(host) Returns the number of dots in the hostname.
dnsResolve(host) Returns a string containing the IP address of the specified host.
myIPAddress( ) Returns a string containing the local machine's IP address.
shExpMatch(url, shexp) Returns true if the supplied URL matches the specified shell expression, false otherwise.
dateRange(parmList) Returns true if the current date falls within the dates specified in parmList, false otherwise.
timeRange(parmList) Returns true if the current time falls within the times specified in parmList, false otherwise.
weekdayRange(parmList) Returns true if today is within the days of the week specified in parmList, false otherwise.
下面是各个函数应用的例子:
作者: xmudahai 2006-10-17 00:33 回复此发言
--------------------------------------------------------------------------------
2 自动配置脚本文件的写法与用途(原创)
a、isPlainHostName(host),本例演示判断是否为本地主机,如 http://myservername/
的方式访问,如果是直接连接,否则使用代理
function FindProxyForURL(url, host)
{
if (isPlainHostName(host))
return "DIRECT";
else
return "PROXY proxy:80";
}
b、dnsDomainIs(host, "")、localHostOrDomainIs(host, ""),本例演示判断访问主机是否属于某个域和某个域名,如果属于.company.com域的主机名,而域名不是company.com和home.company.com的直接连接,否则使用代理访问。
function FindProxyForURL(url, host)
{
if ((isPlainHostName(host) ││
dnsDomainIs(host, ".company.com")) &&
!localHostOrDomainIs(host, "www.company.com") &&
!localHostOrDomainIs(host, "home.company.com"))
return "DIRECT";
else
return "PROXY proxy:80";
}
c、isResolvable(host),本例演示主机名能否被dns服务器解析,如果能直接访问,否则就通过代理访问。
function FindProxyForURL(url, host)
{
if (isResolvable(host))
return "DIRECT";
else
return "PROXY proxy:80";
}
d、isInNet(host, "", ""),本例演示访问IP是否在某个子网内,如果是就直接访问,否则就通过代理,例子演示访问清华IP段的主页不用代理。
function FindProxyForURL(url, host)
{
if (isInNet(host, "166.111.0.0", "255.255.0.0"))
return "DIRECT";
else
return "PROXY proxy:80";
}
e、shExpMatch(host, ""),本例演示根据主机域名来改变连接类型,本地主机、*.edu 、*.com分别用不同的连接方式。
function FindProxyForURL(url, host)
{
if (isPlainHostName(host))
return "DIRECT";
else if (shExpMatch(host, "*.com"))
return "PROXY comproxy:80";
else if (shExpMatch(host, "*.edu"))
return "PROXY eduproxy:80";
else
return "PROXY proxy:80";
}
f、url.substring(),本例演示根据不同的协议来选择不同的代理,http、https、ftp、gopher分别使用不同的代理。
function FindProxyForURL(url, host)
{
if (url.substring(0, 5) == "http:") {
return "PROXY proxy:80";
}
else if (url.substring(0, 4) == "ftp:") {
return "PROXY fproxy:80";
}
else if (url.substring(0, 7) == "gopher:") {
return "PROXY gproxy";
}
else if (url.substring(0, 6) == "https:") {
return "PROXY secproxy:8080";
}
else {
return "DIRECT";
}
}
g、dnsResolve(host),本例演示判断访问主机是否某个IP,如果是就使用代理,否则直接连接。
unction FindProxyForURL(url, host)
{
if (dnsResolve(host) == "166.111.8.237") {
return "PROXY secproxy:8080";
}
else {
return "PROXY proxy:80";
}
}
h、myIpAddress(),本例演示判断本地IP是否某个IP,如果是就使用代理,否则直接使用连接。
function FindProxyForURL(url, host)
{
if (myIpAddress() == "166.111.8.238") {
return "PROXY proxy:80";
}
else {
return "DIRECT";
}
}
i、dnsDomainLevels(host),本例演示访问主机的域名级数是几级,就是域名有几个点如果域名中有点,就通过代理访问,否则直接连接。
function FindProxyForURL(url, host)
{
if (dnsDomainLevels(host) > 0) { // if number of dots in host > 0
return "PROXY proxy:80";
}
return "DIRECT";
}
j、weekdayRange(),本例演示当前日期的范围来改变使用代理,如果是GMT时间周三到周六,使用代理连接,否则直接连接。
function FindProxyForURL(url, host)
{
if(weekdayRange("WED", "SAT", "GMT"))
return "PROXY proxy:80";
else
return "DIRECT";
}
k、最后一个例子是演示随机使用代理,这样可以好好利用代理服务器。
function FindProxyForURL(url,host)
{
return randomProxy();
}
function randomProxy()
{
switch( Math.floor( Math.random() * 5 ) )
{
case 0:
return "PROXY proxy1:80";
break;
case 1:
return "PROXY proxy2:80";
break;
case 2:
return "PROXY proxy3:80";
break;
case 3:
return "PROXY proxy4:80";
break;
case 4:
return "PROXY proxy5:80";
break;
}
}
利用上面的函数和例子说明,大家就可以写出比较复杂有效的自动代理脚本。
局域网设置自动配置脚本文件的写法与用途_其它
时间: 2024-10-28 21:30:46
局域网设置自动配置脚本文件的写法与用途_其它的相关文章
Win8设置自动配置脚本的方法
Win8设置自动配置脚本的方法: 1.点击桌面右侧"设置",选择"控制面板",点击"网络和共享中心"; 2.点击"Internet 选项"; 3.点击"连接"中的"局域网设置"; 4.勾选"使用自动配置脚本信息".
【技术贴】局域网设置 使用自动配置脚本 有对钩被选中取消不掉的解决办法
[技术贴]局域网设置 使用自动配置脚本 有对钩被选中取消不掉的解决办法 今天用代理,发现了一个很奇怪的现象,我去啊,总是闲着没事,我的代理就被更改了,我把代理关了,发现那个选项还是在,是个9090端口的使用自动配置脚本.经过对网上一些解决方案的思考,发现是我的pp加速器搞的.我把pp加速器关闭掉之后发现,嘿,好了~! 使用自动配置脚本 一直无法取消的原因就是这个网页加速的软件,比如pp加速器 pps加速器 飞速土豆 优酷下载 等等等等,没啥事,关掉这些软件即可,或者卸载掉即可.
设置Win 8系统自动配置脚本的思路
1.点击桌面右侧"设置",选择"控制面板",点击"网络和共享中心"; 电脑常识 2.点击"Internet 选项"; 3.点击"连接"中的"局域网设置"; 4.勾选"使用自动配置脚本信息". 通过以上四个步骤,是不是觉得很简单呢?
按键精灵设置自动清除Prefetch文件夹内容脚本的图文步骤
按键精灵是一款功能非常强大的软件,网友可以通过设置鼠标与键盘的动作脚本,让鼠标与键盘替自己完成非常多重复而繁琐的工作.而今天,小编将为大家讲解的是,使用按键精灵设置自动清除Prefetch文件夹内容的方法,希望大家会喜欢! WindowsXP系统文件夹下有一个Prefetch文件夹,它是windows为了加快运行速度而使用的预读文件夹,不过时间久了Prefetch文件夹内会堆放了许多垃圾,特别是如果用户经常更换电脑配置的话,系统以前记录的进程资料就没有任何用处了.文件太多反而会影响系统速度,
IE浏览器使用自动配置脚本的设置方法
在FireFox中自动配置代理的地址是:file:///d:/setup/proxy.pac 而在IE中,自动配置脚本的地址应该是:file://d:setupproxy.pac 我目前的proxy.pac文件内容写的是: function FindProxyForURL(url,host){ if(dnsDomainIs(host, ".blogspot.com")){ return "PROXY 72.14.219.190:80"; } if(dnsDoma
ubuntu-,设置了自动配置脚本,浏览器可以可以上网,终端不可以。
问题描述 ,设置了自动配置脚本,浏览器可以可以上网,终端不可以. Ubuntu虚拟机bat方式下连网,设置了自动配置脚本,浏览器可以可以上网,终端不可以.装双系统下的Ubuntu也有同样问题,浏览器可以,终端不能上网
XP系统如何设置自动清理Temp文件夹
XP系统如何设置自动清理Temp文件夹 自动清理方法: 1.在D盘建立D:UserDataTEMP目录 02.右击"我的电脑","属性","高级",打开"环境变量"对话框,将用户变量和系统变量都改为D:UserDataTEMP. 03.新建一个文本文档,在里面写入两行代码: RD %TEMP% /S/Q MKDIR %TEMP% 然后另存为*.bat格式(比如CleanTEMP.bat),这样只要打开一下CleanTEMP
360安全卫士怎么自动删除补丁文件
现在,电脑都会提醒要安装补丁.但是安装完后,很多人多久放着补丁文件不管,这是占据电脑内存,导致电脑速度变慢.那么,360安全卫士怎么自动删除补丁文件?今天小编就给大家带来360安全卫士怎么设置自动删除补丁文件. 360安全卫士设置自动删除补丁文件的设置步骤 1.启动360安全卫士,点击选择程序界面右上角的[主菜单]按钮.(如图所示) 2.在[主菜单]下,点击选择[设置]选项.(如图所示) 3.在[360设置中心]界面下,点击选择[漏洞修复]--[补丁保存设置]--[定期自动删除补丁文件]--
实现Windows XP下VPN连接自动配置的批处理脚本
前几天在完成了TMG_VPN的配置后,一直在想能否更简化用户的操作呢?最好是通过脚本的方式让用户不用做任何配置,只需点击就可以完成对所有VPN的配置,经过一段时间的编写和修改后,今天晚上终于完成了Window XP下VPN自动配置的脚本,以前没怎么写过,第一次写,遇到了不少问题,不过经过自己的修改后已经完成了如下功能: 1.自动创建所有VPN服务器. 2.创建所有VPN服务器对应的桌面快捷方式. 3.生成PBK文件的快捷方式. 4.对已有VPN连接进行校对,判断是否已经有过配置操作. 5.配置完