El portàtil és a la Wi-Fi de l'oficina, el cable Ethernet està connectat i l'adaptador VPN encara hi és. El teu fitxer PAC pregunta a myIpAddress() en quina xarxa es troba. Sembla raonable fins que rep una adreça que pertany a l'adaptador equivocat.

El detall que falta és que la funció retorna una sola adreça. No és un inventari de totes les interfícies i no contacta amb cap lloc web per descobrir la teva IP pública. Una adreça privada, o fins i tot un retorn de loopback, no et diu quina adreça de sortida farà servir una sol·licitud a través del proxy.

Una resposta per a una màquina amb diverses adreces

La selecció de la interfície de xarxa pertany a la implementació del PAC. El consell antic de reordenar els adaptadors de Windows pot descriure una versió concreta de navegador i de sistema operatiu, però és una mala solució universal. Chromium documenta el seu propi algorisme de selecció i les limitacions amb diverses xarxes; un altre client no ha de fer la mateixa tria.

Comença identificant el valor que el navegador afectat ha proporcionat realment i compara'l amb les comprovacions de subxarxa del teu script. Fes-ho per separat a la Wi-Fi, a Ethernet i a la connexió VPN aprovada. Una adreça que sembla sorprenent encara pot complir les regles de la implementació.

Fes que la decisió depengui de menys conjectures

Quan sigui possible, tria un proxy a partir del nom d'amfitrió de destinació en lloc d'una interfície de client suposada. Si cal detecció de xarxa, utilitza un senyal deliberat i documentat que controli la teva organització. La detecció basada en DNS també té modes de fallada, així que defineix què passa quan aquest senyal no està disponible.

Algunes implementacions ofereixen myIpAddressEx(). Comprova'n el suport i el format de retorn abans d'adoptar-lo; no és un substitut directe d'una sola cadena IPv4. Finalment, verifica la ruta de sol·licitud resultant de manera independent. Reconèixer correctament la subxarxa de l'oficina i arribar al proxy previst són dos resultats separats.

Articles relacionats