Проверете забележаната излезна IP од Chrome-продолжување
Испратете ограничено барање од потеклото на продолжувањето до контролирана крајна точка и известете што проверката навистина докажува.
Проверката на прокси во Chrome-продолжување бара дестинација со предвидлив одговор. Користете HTTPS крајна точка што ја контролирате, на пример таква што враќа мал JSON-објект со адресата што ја гледа.
Извршете го барањето од контекст на продолжувањето, како негов service worker или страница на продолжувањето, со крајната точка во host permissions на манифестот:
"host_permissions": ["https://probe.example/*"]
Дозволата за домаќин не му дава на content script исти привилегии меѓу потекло. Држете ја проверката во контекст на продолжувањето, наместо да претпоставувате дека вметната скрипта може да го испрати истото барање.
async function probe() {
const controller = new AbortController();
const timer = setTimeout(() => controller.abort(), 5000);
try {
const response = await fetch('https://probe.example/ip', {
cache: 'no-store',
signal: controller.signal,
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
if (typeof result.ip !== 'string') throw new Error('Bad probe body');
return result.ip;
} finally {
clearTimeout(timer);
}
}
Името на домаќинот е заменка. Серверот и клиентот мора да се договорат за форматот на одговорот и политиката за кеширање. Обработете ги одбиените барања и неисправните одговори во повикувачот на продолжувањето, наместо да ги прикажувате како валидна излезна адреса.
Именувајте го набљудувањето точно
Успешниот резултат докажува дека ова барање стигнало до крајната точка и добило одговор од очекуваната форма. Споредете ја забележаната адреса со маршрутата што сте ја намерачиле, таму каде што таа споредба има смисла. IP-адресата на која слуша конфигурираниот прокси не мора да биде неговиот јавен излез.
Правило на PAC или список за заобиколување може да ја испрати проверката директно, додека друга дестинација користи прокси. Читањето на поставките на проксито дава доказ за конфигурацијата; барањето дава доказ за оваа дестинација. Ниту едно од двете само по себе не докажува дека секое јазиче или URL ја следи истата маршрута.
Држете го времето на чекање, HTTP-грешката и неочекуваното тело одделени во интерфејсот. „Оваа проверка не успеа“ е покорисно отколку да ја прогласите целата машина за офлајн по едно барање.