Kontroller den observerte utgående IP-adressen fra en Chrome-utvidelse
Send en avgrenset forespørsel fra utvidelsens opprinnelse til et kontrollert endepunkt, og rapporter hva testen faktisk beviser.
En proxy-test i en Chrome-utvidelse trenger et mål med et forutsigbart svar. Bruk et HTTPS-endepunkt du kontrollerer, for eksempel ett som returnerer et lite JSON-objekt med adressen det ser.
Kjør forespørselen fra en utvidelseskontekst, for eksempel service worker-en eller en utvidelsesside, med endepunktet i manifestets host permissions:
"host_permissions": ["https://probe.example/*"]
En vertstillatelse gir ikke et content script de samme rettighetene på tvers av opprinnelser. Hold testen i utvidelseskonteksten i stedet for å anta at et injisert skript kan sende den samme forespørselen.
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);
}
}
Vertsnavnet er en plassholder. Serveren og klienten må bli enige om svarformatet og hurtigbufferpolitikken. Håndter avviste forespørsler og feilaktige svar i utvidelsens kaller i stedet for å vise dem som en gyldig utgangsadresse.
Navngi observasjonen presist
Et vellykket resultat beviser at denne forespørselen nådde endepunktet og fikk den forventede formen for svar. Sammenlign den observerte adressen med ruten du hadde til hensikt, der sammenligningen er meningsfull. Lytta-IP-en til den konfigurerte proxyen trenger ikke være dens offentlige utgang.
En PAC-regel eller en unntaksliste kan sende testen direkte mens et annet mål bruker en proxy. Å lese proxyinnstillingene gir konfigurasjonsbevis; forespørselen gir bevis for dette målet. Ingen av dem alene beviser at hver fane eller URL følger samme rute.
Hold tidsavbrudd, HTTP-feil og en uventet kropp atskilt i grensesnittet. «Denne testen mislyktes» er nyttigere enn å erklære hele maskinen frakoblet etter én forespørsel.