【问题标题】:I want to parse a PAC file to get some Proxy information... just not in Explorer我想解析一个 PAC 文件以获取一些代理信息……只是不在资源管理器中
【发布时间】:2009-07-02 18:16:35
【问题描述】:

this question继续关注:

我正在开发一个可以在 Windows XP 上运行的 Python 2.4 应用程序。它需要能够从 HTTP 下载各种资源,并且必须在我们所有使用“PAC”文件自动选择 http 代理的办公地点工作。

感谢有人回答了我之前的问题,我设法找到了一种在 Python 中执行 Javascript 的技术,这真的很容易:

js = win32com.client.Dispatch('MSScriptControl.ScriptControl')
js.Language = 'JavaScript'
js.AddCode('function foo(a,b) {return a;}'  )
result = js.Run( "foo", "hello" )

但问题来了:

PAC 文件引用了许多函数,例如 shExpMatchisPlainHostName - 这些可能是由 Microsoft Internet Explorer 免费提供的。如果我只是使用上面的方法在 Widnows Scripting 中运行 PAC 文件,它将失败,因为这些函数没有丢失。

所以我需要的是一种与 IE 完全相同的方式来设置环境的方法。显而易见的方法是以与 IE 相同的方式导入函数。

我发现 Firefox 包含一个包含这些函数的 JS 文件,我想我可以尝试在 Microsoft 的脚本主机上运行 Firefox 的 JS,但这听起来像是一个冒险的想法。我真正想要的是让 javascript 环境成为 100% 微软标准,而不需要任何让我的生活变得更艰难的东西。

有什么建议吗?

PS。你可以看到example of a PAC file on Wikipedia。不幸的是,我不能发布我们的……那会违反公司安全。

【问题讨论】:

    标签: javascript python windows internet-explorer


    【解决方案1】:

    您可以从远程主机下载 PAC 文件吗?我之所以问,是因为 python 中的 urllib 通常使用代理的静态信息,从注册表中检索。
    但是,如果您能够获取该文件,那么我认为您也可以获取另一个文件 - 然后您使用 FF 版本的想法就会开始。

    【讨论】:

    • 是的,我可以下载它。那是容易的部分。我还可以通过 Win32Com 将它推送到 Windows 脚本主机中。问题是它无法运行,因为我没有 Microsoft 的标准 PAC 功能实现。
    • 因此,如果您可以下载或推送它,您也可以下载/推送该文件的另一个版本,其中已经定义了 shExpMatch 之类的函数(就像您所说的 FF 所做的那样)。这样,即使没有成熟的 IE 环境,您也可以评估 PAC。
    • 正是所以我需要找到微软对这些功能的实现。我可以看到 Mozilla 的实现——它在一个 JS 文件中。但我需要它尽可能接近 MS 标准。
    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多