Hvorfor PAC-filen din velger feil nettverksadapter
En bærbar PC kan ha flere lokale adresser. En PAC-regel basert på myIpAddress() kan identifisere et annet grensesnitt enn det du forventet.
Den bærbare PC-en er på kontorets Wi-Fi, Ethernet-kabelen er tilkoblet, og en VPN-adapter er fortsatt til stede. PAC-filen din spør myIpAddress() hvilket nettverk den er på. Det høres rimelig ut helt til den får en adresse som tilhører feil adapter.
Den manglende detaljen er at funksjonen returnerer én adresse. Den er ikke en oversikt over hvert grensesnitt, og den kontakter ikke et nettsted for å oppdage din offentlige IP. En privat adresse, eller til og med en loopback-reserve, forteller deg ikke hvilken utgangsadresse en proxy-forespørsel vil bruke.
Ett svar for en maskin med flere adresser
Valg av nettverksgrensesnitt hører til PAC-implementasjonen. Gammelt råd om å omorganisere Windows-adaptere kan beskrive en bestemt nettleser- og operativsystemversjon, men det er en dårlig universell løsning. Chromium dokumenterer sin egen valgalgoritme og begrensninger ved flere nettverk; en annen klient må ikke gjøre det samme valget.
Begynn med å identifisere verdien den berørte nettleseren faktisk oppga, og sammenlign den deretter med subnettkontrollene i skriptet ditt. Gjør dette separat på Wi-Fi, Ethernet og den godkjente VPN-tilkoblingen. En adresse som ser overraskende ut, kan fortsatt oppfylle implementasjonens regler.
La avgjørelsen avhenge av mindre gjetting
Der det er praktisk, velg en proxy ut fra destinasjonens vertsnavn i stedet for et antatt klientgrensesnitt. Hvis nettverksregistrering er nødvendig, bruk et bevisst, dokumentert signal som organisasjonen din kontrollerer. DNS-basert registrering har også feilmoduser, så definer hva som skjer når signalet ikke er tilgjengelig.
Noen implementasjoner tilbyr myIpAddressEx(). Sjekk støtten og returformatet før du tar det i bruk; det er ikke en direkte erstatning for en enkelt IPv4-streng. Til slutt, verifiser den resulterende forespørselsruten uavhengig. Å gjenkjenne kontorets subnett riktig og å nå den tiltenkte proxyen er to separate resultater.