这是从这里开始的第二部分。
当客户端 VPN 进入我的网络时,他们会被分配一个 IP 地址,这反过来又为他们提供了 DHCP 的 252 选项。自动检测然后抓取这个文件
我本质上需要的是一种让proxy.pac确定客户端是否在VPN连接上的方法,以便它可以为他们解析DIRECT。
因此,如果我做一个简单的var myIp = myipAddress()然后让它从这些固定地址的列表中匹配它,那么它就会得到解决。然而,myIpAddress() 函数似乎正在获取机器的本地 IP(例如:192.168.10.1)而不是网络适配器。在我的情况下,本地地址是我的一些本地虚拟机所需的 MS Loopback。如果我禁用我的 Loopback 适配器,它会开始解析正确的地址。这不是一个理想的解决方法。
那么如何从正确的适配器解析我想要的 IP 地址呢?
- 我现在一直在本地机器上进行这个测试。
- 我知道这不是一个封闭的 VPN 解决方案,它只是目前已经决定的。
提前致谢...
不幸的是,让 myIpAddress() 在 Windows 中返回正确的地址确实涉及更改 NIC 的优先级(在 Windows XP 中,这是在“网络连接”对话框的“高级”菜单的“高级设置...”对话框中)。
这是其他人的问题,看起来像您所看到的:http ://www.geurtsrus.com/gerke/2005/01/proxy-auto-configuration-blues.html
您可能会更好地检测需要代理的 IP 地址,而不是那些不需要代理的 IP 地址(即公司中的本地子网)并假设 DIRECT 否则。
另一种选择是将不同的 PAC DHCP 选项传递给 VPN 上的客户端。如果您的 VPN 用户来自专用子网,这可能很容易,但如果他们来自 LAN 子网,则可能并非如此。
可以将 wpad.dat 重定向到 wpad.aspx 并使用 ASP 查找 ip 地址:
你使用的是什么浏览器?基于 Mozilla 的浏览器在这方面存在问题,但它们不容易解决,因为函数调用最初是在假设系统是单宿主的情况下定义的(除非您与物理网络断开连接,并且仅在环回上运行,否则这是完全错误的)。