O portátil está na Wi-Fi da oficina, o cable Ethernet está conectado e o adaptador VPN segue presente. O teu ficheiro PAC pregunta a myIpAddress() en que rede está. Iso soa razoable ata que recibe unha dirección que pertence ao adaptador incorrecto.

O detalle que falta é que a función devolve unha soa dirección. Non é un inventario de todas as interfaces e non contacta cun sitio web para descubrir o teu IP público. Unha dirección privada, ou mesmo unha alternativa de loopback, non che di que dirección de saída usará unha solicitude a través do proxy.

Unha resposta para unha máquina con varias direccións

A selección da interface de rede pertence á implementación do PAC. O antigo consello de reordenar os adaptadores de Windows pode describir unha versión concreta de navegador e de sistema operativo, pero é unha mala solución universal. Chromium documenta o seu propio algoritmo de selección e as limitacións con varias redes; outro cliente non ten por que facer a mesma elección.

Comeza identificando o valor que o navegador afectado forneceu realmente e compárao coas comprobacións de subrede do teu script. Faino por separado en Wi-Fi, Ethernet e a conexión VPN aprobada. Unha dirección que parece sorprendente aínda pode cumprir as regras da implementación.

Fai que a decisión dependa de menos conxecturas

Cando sexa posible, escolle un proxy a partir do nome de host de destino en lugar dunha interface de cliente suposta. Se a detección de rede é necesaria, usa un sinal deliberado e documentado que controle a túa organización. A detección baseada en DNS tamén ten modos de fallo, así que define que ocorre cando ese sinal non está dispoñible.

Algunhas implementacións ofrecen myIpAddressEx(). Comproba o seu soporte e o seu formato de retorno antes de adoptalo; non é un substituto directo dunha única cadea IPv4. Por último, verifica a ruta de solicitude resultante de forma independente. Recoñecer correctamente a subrede da oficina e chegar ao proxy previsto son dous resultados distintos.

Artigos relacionados