Prečo váš súbor PAC vyberá nesprávny sieťový adaptér
Notebook môže mať niekoľko miestnych adries. Pravidlo PAC založené na myIpAddress() môže určiť iné rozhranie, než ste očakávali.
Notebook je na kancelárskej Wi-Fi, ethernetový kábel je zapojený a VPN adaptér je stále prítomný. Váš súbor PAC sa pýta myIpAddress(), v ktorej sieti sa nachádza. Znie to rozumne, kým nedostane adresu patriacu nesprávnemu adaptéru.
Chýbajúci detail je, že funkcia vracia jednu adresu. Nie je to súpis všetkých rozhraní a nekontaktuje web, aby zistila vašu verejnú IP. Súkromná adresa alebo dokonca záložný loopback vám nepovie, ktorú výstupnú adresu použije požiadavka cez proxy.
Jedna odpoveď pre stroj s niekoľkými adresami
Výber sieťového rozhrania patrí implementácii PAC. Stará rada preusporiadať adaptéry Windows môže opisovať konkrétnu verziu prehliadača a operačného systému, ale je to zlá univerzálna oprava. Chromium dokumentuje vlastný algoritmus výberu a obmedzenia pri viacerých sieťach; iný klient nemusí urobiť rovnakú voľbu.
Začnite tým, že zistíte hodnotu, ktorú postihnutý prehliadač skutočne poskytol, a potom ju porovnajte s kontrolami podsiete vo vašom skripte. Urobte to oddelene na Wi-Fi, Ethernete a schválenom pripojení VPN. Adresa, ktorá vyzerá prekvapivo, môže stále spĺňať pravidlá implementácie.
Nech rozhodnutie závisí od menej odhadov
Kde je to možné, vyberte proxy podľa názvu cieľového hostiteľa, nie podľa predpokladaného klientskeho rozhrania. Ak je potrebná detekcia siete, použite zámerný, zdokumentovaný signál, ktorý vaša organizácia kontroluje. Detekcia založená na DNS má tiež režimy zlyhania, preto definujte, čo sa stane, keď tento signál nie je dostupný.
Niektoré implementácie ponúkajú myIpAddressEx(). Pred prijatím skontrolujte jeho podporu a formát návratu; nie je priamou náhradou za jeden reťazec IPv4. Nakoniec nezávisle overte výslednú trasu požiadavky. Správne rozpoznanie kancelárskej podsiete a dosiahnutie zamýšľanej proxy sú dva samostatné výsledky.