Snel antwoord
Hoe gebruik ik een proxy voor een Amerikaanse stad in Node.js?
Maak een undici ProxyAgent voor http://gw.metroproxies.com:7777 met een stadsgebruikersnaam zoals USERNAME-country-us-state-fl-city-orlando, en geef die mee als de dispatcher van fetch; Playwright gebruikt dezelfde waarden in zijn proxy-optie. MetroProxies biedt targeting op stad, ZIP en ASN bij elk abonnement vanaf US$ 0,50/GB (oktober 2026). Zonder KYC; crypto.
import { ProxyAgent, fetch } from 'undici';
const user = 'USERNAME-country-us-state-fl-city-orlando';
const agent = new ProxyAgent({
uri: 'http://gw.metroproxies.com:7777',
token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
});
const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
await agent.close();
import { ProxyAgent, fetch } from 'undici';
const cities = [['fl', 'orlando'], ['fl', 'tampa'], ['ga', 'atlanta']];
for (const [state, city] of cities) {
const user = `USERNAME-country-us-state-${state}-city-${city}`;
const agent = new ProxyAgent({
uri: 'http://gw.metroproxies.com:7777',
token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
});
try {
const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const info = await res.json();
console.log(city, '->', info.ip, info.city, info.region);
} catch (err) {
console.log(city, 'failed:', err.message);
} finally {
await agent.close();
}
}
import { chromium } from 'playwright';
const browser = await chromium.launch({
proxy: {
server: 'http://gw.metroproxies.com:7777',
username: 'USERNAME-country-us-state-fl-city-miami-session-mia01-ttl-15',
password: 'PASSWORD',
},
});
const context = await browser.newContext({ timezoneId: 'America/New_York', locale: 'en-US' });
const page = await context.newPage();
await page.goto('https://ipinfo.io/json', { timeout: 60000 });
console.log(await page.textContent('body'));
await browser.close();
Waar moet ik op letten in Node.js?
- Keep-alive: één
ProxyAgenthergebruikt verbindingen, dus in rotating mode behoudt het hetzelfde exit-IP zolang een verbinding open blijft. Maak één agent per stad, of sluit hem, om een nieuw IP te krijgen. - Tijdzone en locale: de opties
timezoneIdenlocalevan Playwright laten de browser bij de stad passen; elke stadspagina geeft de IANA-zone (Miami:America/New_York). - SOCKS5: Chromium stuurt geen gebruikersnaam naar SOCKS5-proxy's; gebruik de HTTP-poort in browsers.
- Time-outs:
AbortSignal.timeout()in fetch,timeoutin Playwright. - Snelheid: houd het aantal requests per site bescheiden en volg de robots.txt en voorwaarden.
Waar moet ik nu naartoe?
Begin met de installatie in vijf minuten, vergelijk met de Python- en curl-voorbeelden, en controleer exits met de proxy-locatiechecker. Alle docs: documentatie.
Wat vragen mensen nog meer over Node.js?
Welke Node.js-versie heb ik nodig?
Node.js 18 of later voor AbortSignal.timeout en top-level await in .mjs-bestanden. Installeer undici met npm install undici en Playwright met npm install playwright.
Werkt Puppeteer ook?
Ja: start met --proxy-server=http://gw.metroproxies.com:7777 en roep page.authenticate({ username, password }) aan vóór de eerste navigatie.
Zijn deze voorbeelden tegen de gateway getest?
Ze zijn syntax-gecontroleerd met node --check, met USERNAME en PASSWORD als placeholders. Voer ze uit met je eigen inloggegevens.