为提升您的使用体验,本站正在维护,部分功能暂时无法使用。如果本站文章无法解决您的问题,您想要向社区提问的话,请到 Twitter 上的 @FirefoxSupport 或 Reddit 上的 /r/firefox 提问,我们的支持社区将会很快回复您的疑问。

搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

Proxy.pac file syntax is not correctly recognized in Firefox 4 final.

  • 5 个回答
  • 66 人有此问题
  • 1 次查看
  • 最后回复者为 Velnias

more options

We are using a proxy.pac file to determine a proxy server based on subnet the user is in. (each subnet has its ISP and proxy server.)

here is the script:

function FindProxyForURL(url, host)
{
if (isInNet(host, "10.0.0.0", "255.0.0.0"))
        return "DIRECT";
if (isInNet(host, "127.0.0.1", "255.255.255.0"))
        return "DIRECT";
if (shExpMatch(url, "feed:*"))
        return "DIRECT" ;
if (shExpMatch(url, "ftp:*"))
        return "DIRECT" ;
if (shExpMatch( host, "localhost" ))
        return "DIRECT";
if (isInNet(myIpAddress(), "10.10.11.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.11.0", "/24"))
        return "PROXY 10.10.11.100:3128; DIRECT";
else if (isInNet(myIpAddress(), "10.10.12.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.12.0", "/24"))
        return "PROXY 10.10.12.100:3128; DIRECT";
else if (isInNet(myIpAddress(), "10.10.10.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.10.0", "/24"))
        return "PROXY 10.10.10.100:3128; DIRECT";
else
	return "DIRECT";
}

it seems like FF4 always pick the first proxy in "if" clause, and ignores the "else if" (i have tries to switch the proxies around.)

It was working correctly in FF3.6 and is still working in IE8.

System is Win 7 Ent. x64 bit. FF4 final.

We are using a proxy.pac file to determine a proxy server based on subnet the user is in. (each subnet has its ISP and proxy server.) here is the script: <pre><nowiki>function FindProxyForURL(url, host) { if (isInNet(host, "10.0.0.0", "255.0.0.0")) return "DIRECT"; if (isInNet(host, "127.0.0.1", "255.255.255.0")) return "DIRECT"; if (shExpMatch(url, "feed:*")) return "DIRECT" ; if (shExpMatch(url, "ftp:*")) return "DIRECT" ; if (shExpMatch( host, "localhost" )) return "DIRECT"; if (isInNet(myIpAddress(), "10.10.11.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.11.0", "/24")) return "PROXY 10.10.11.100:3128; DIRECT"; else if (isInNet(myIpAddress(), "10.10.12.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.12.0", "/24")) return "PROXY 10.10.12.100:3128; DIRECT"; else if (isInNet(myIpAddress(), "10.10.10.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.10.0", "/24")) return "PROXY 10.10.10.100:3128; DIRECT"; else return "DIRECT"; } </nowiki></pre> it seems like FF4 always pick the first proxy in "if" clause, and ignores the "else if" (i have tries to switch the proxies around.) It was working correctly in FF3.6 and is still working in IE8. System is Win 7 Ent. x64 bit. FF4 final.

由cor-el于修改

所有回复 (5)

more options

Hi,

I have encountered the same issue and I have bypassed it as follow:

  1. about:config
  2. Search and set the option "network.dns.disableIPv6" to true

For my side, the options "use a PAC file" or "use system proxy settings" work with this change.

Bye. Francois

more options

Well it did not worked for me. Still have the same problem.

more options

Do you have multiple IP addresses on your client machine? If so, the myIpAddress() function returns only the IP of the first adapter it looks at. If you have wired, wireless, IPv6, etc addresses on your client, the myIPAddress() function will only return the first one it finds.

For example, if you are looking for an IP on a wired subnet, and your first adapter is wireless, the function will return the address of your wireless adapter, and the "else if" criteria will not apply.

more options

This is still not working. And after upgrading to Firefox 6.0 the pac file does not work at all.

more options

And no, i do not have multiple IP's. And use only IP4