Kurze Antwort
Wie nutze ich einen US-Stadt-Proxy in Node.js?
Erstelle einen undici-ProxyAgent für http://gw.metroproxies.com:7777 mit einem Stadt-Benutzernamen wie USERNAME-country-us-state-fl-city-orlando und übergib ihn als dispatcher von fetch; Playwright übernimmt dieselben Werte in seiner proxy-Option. MetroProxies bietet Targeting nach Stadt, ZIP und ASN in jedem Plan ab 0,50 $/GB (Oktober 2026). Ohne KYC; mit Krypto bezahlen.
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();
Worauf sollte ich in Node.js achten?
- Keep-alive: Ein
ProxyAgentverwendet Verbindungen wieder, daher behält es im Rotationsmodus dieselbe Exit-IP, solange eine Verbindung offen bleibt. Erstelle einen Agent pro Stadt oder schließe ihn, um eine neue IP zu bekommen. - Zeitzone und Locale: Die Optionen
timezoneIdundlocalevon Playwright lassen den Browser zur Stadt passen; jede Stadtseite gibt ihre IANA-Zone an (Miami:America/New_York). - SOCKS5: Chromium sendet keinen Benutzernamen an SOCKS5-Proxys; nutze im Browser den HTTP-Port.
- Timeouts:
AbortSignal.timeout()in fetch,timeoutin Playwright. - Rate: Halte die Anfragen an jede Seite maßvoll und befolge ihre robots.txt und Bedingungen.
Wohin sollte ich als Nächstes gehen?
Starte mit dem Fünf-Minuten-Setup, vergleiche mit den Python- und curl-Beispielen und prüfe Exit-IPs mit dem Proxy-Standort-Checker. Alle Docs: Dokumentation.
Was fragen Leute sonst noch zu Node.js?
Welche Node.js-Version brauche ich?
Node.js 18 oder neuer für AbortSignal.timeout und Top-Level-await in .mjs-Dateien. Installiere undici mit npm install undici und Playwright mit npm install playwright.
Funktioniert Puppeteer auch?
Ja: mit --proxy-server=http://gw.metroproxies.com:7777 starten und vor der ersten Navigation page.authenticate({ username, password }) aufrufen.
Wurden diese Beispiele gegen das Gateway ausgeführt?
Sie sind mit node --check syntaxgeprüft, wobei USERNAME und PASSWORD Platzhalter sind. Führe sie mit deinen eigenen Zugangsdaten aus.