Jawaban singkat
Bagaimana cara menggunakan proxy kota AS di Node.js?
Buat undici ProxyAgent untuk http://gw.metroproxies.com:7777 dengan username kota seperti USERNAME-country-us-state-fl-city-orlando, dan teruskan sebagai dispatcher dari fetch; Playwright memakai nilai yang sama di opsi proxy-nya. MetroProxies menyertakan penargetan kota, ZIP, dan ASN pada setiap paket mulai US$0,50/GB (Oktober 2026). Tanpa KYC; kripto.
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();
Apa yang perlu saya perhatikan di Node.js?
- Keep-alive: satu
ProxyAgentmenggunakan ulang koneksi, jadi dalam mode rotating ia mempertahankan IP keluar yang sama selama koneksi tetap terbuka. Buat satu agent per kota, atau tutup, untuk mendapatkan IP baru. - Zona waktu dan locale: opsi
timezoneIddanlocaledi Playwright membuat browser cocok dengan kota; setiap halaman kota mencantumkan zona IANA-nya (Miami:America/New_York). - SOCKS5: Chromium tidak mengirim username ke proxy SOCKS5; gunakan port HTTP di browser.
- Timeout:
AbortSignal.timeout()di fetch,timeoutdi Playwright. - Rate: jaga permintaan ke setiap situs tetap wajar dan ikuti robots.txt serta ketentuannya.
Ke mana sebaiknya saya pergi selanjutnya?
Mulai dari setup lima menit, bandingkan dengan contoh Python dan curl, dan periksa exit dengan pemeriksa lokasi proxy. Semua dokumentasi: dokumentasi.
Apa lagi yang orang tanyakan tentang Node.js?
Versi Node.js mana yang saya butuhkan?
Node.js 18 atau lebih baru untuk AbortSignal.timeout dan top-level await di file .mjs. Instal undici dengan npm install undici dan Playwright dengan npm install playwright.
Apakah Puppeteer juga bisa?
Ya: jalankan dengan --proxy-server=http://gw.metroproxies.com:7777 dan panggil page.authenticate({ username, password }) sebelum navigasi pertama.
Apakah contoh-contoh ini dijalankan terhadap gateway?
Contoh-contoh ini dicek sintaksnya dengan node --check, dengan USERNAME dan PASSWORD sebagai placeholder. Jalankan dengan kredensial Anda sendiri.