Лаптопът е на офис Wi-Fi, Ethernet кабелът е свързан, а VPN адаптерът все още присъства. Вашият PAC файл пита myIpAddress() в коя мрежа се намира. Това звучи разумно, докато не получи адрес, принадлежащ на грешния адаптер.

Липсващата подробност е, че функцията връща един адрес. Тя не е опис на всеки интерфейс и не се свързва с уебсайт, за да открие вашия публичен IP. Частен адрес или дори резервен loopback не ви казва кой изходен адрес ще използва прокси заявката.

Един отговор за машина с няколко адреса

Изборът на мрежов интерфейс принадлежи на PAC реализацията. Старият съвет да пренареждате Windows адаптери може да описва конкретна версия на браузър и операционна система, но е лоша универсална поправка. Chromium документира собствения си алгоритъм за избор и ограничения при множество мрежи; друг клиент не е длъжен да направи същия избор.

Започнете с идентифициране на стойността, която засегнатият браузър действително е предоставил, след което я сравнете с проверките на подмрежата в скрипта си. Направете това отделно за Wi-Fi, Ethernet и одобрената VPN връзка. Адрес, който изглежда изненадващ, все още може да отговаря на правилата на реализацията.

Направете решението по-малко зависимо от догадки

Където е практично, избирайте прокси въз основа на името на хоста на местоназначението, а не на предполагаем клиентски интерфейс. Ако откриването на мрежата е необходимо, използвайте преднамерен, документиран сигнал, който вашата организация контролира. Откриването чрез DNS също има режими на отказ, затова дефинирайте какво се случва, когато този сигнал е недостъпен.

Някои реализации предлагат myIpAddressEx(). Проверете поддръжката и формата на връщане, преди да го приемете; той не е пряка замяна на един IPv4 низ. Накрая проверете независимо маршрута на заявката. Правилното разпознаване на офис подмрежата и достигането до желаното прокси са два отделни резултата.

Подобни статии