Proč váš PAC soubor vybírá špatný síťový adaptér
Notebook může mít několik místních adres. Pravidlo PAC založené na myIpAddress() může určit jiné rozhraní, než jste čekali.
Notebook je na kancelářské Wi-Fi, ethernetový kabel je zapojený a VPN adaptér je stále přítomný. Váš PAC soubor se ptá myIpAddress(), ve které síti se nachází. Zní to rozumně, dokud nedostane adresu patřící špatnému adaptéru.
Chybějící detail je, že funkce vrací jednu adresu. Není to soupis všech rozhraní a nekontaktuje web, aby zjistila vaši veřejnou IP. Soukromá adresa, nebo dokonce záložní loopback, vám neřekne, kterou výstupní adresu použije požadavek přes proxy.
Jedna odpověď pro stroj s několika adresami
Výběr síťového rozhraní patří implementaci PAC. Stará rada přeřadit adaptéry Windows může popisovat konkrétní verzi prohlížeče a operačního systému, ale je to špatná univerzální oprava. Chromium dokumentuje vlastní algoritmus výběru a omezení pro více sítí; jiný klient nemusí učinit stejnou volbu.
Začněte tím, že zjistíte hodnotu, kterou postižený prohlížeč skutečně poskytl, a poté ji porovnejte s kontrolami podsítě ve vašem skriptu. Udělejte to zvlášť na Wi-Fi, Ethernetu a schváleném připojení VPN. Adresa, která vypadá překvapivě, může stále splňovat pravidla implementace.
Ať rozhodnutí závisí na méně odhadech
Kde je to možné, vybírejte proxy podle názvu cílového hostitele, nikoli podle předpokládaného klientského rozhraní. Pokud je detekce sítě nutná, použijte záměrný, zdokumentovaný signál, který vaše organizace kontroluje. Detekce založená na DNS má také režimy selhání, proto definujte, co se stane, když tento signál není k dispozici.
Některé implementace nabízejí myIpAddressEx(). Před přijetím zkontrolujte jeho podporu a formát návratu; není přímou náhradou za jeden řetězec IPv4. Nakonec nezávisle ověřte výslednou trasu požadavku. Správné rozpoznání kancelářské podsítě a dosažení zamýšlené proxy jsou dva samostatné výsledky.