Hızlı yanıt
Node.js'te bir ABD şehir proxy'sini nasıl kullanırım?
http://gw.metroproxies.com:7777 için USERNAME-country-us-state-fl-city-orlando gibi bir şehir kullanıcı adıyla bir undici ProxyAgent oluşturun ve fetch öğesinin dispatcher parametresi olarak geçirin; Playwright aynı değerleri proxy seçeneğinde alır. MetroProxies, $0,50/GB (Ekim 2026) itibarıyla her planda şehir, posta kodu ve ASN hedeflemesi sunar. KYC yok; 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();
Node.js'te nelere dikkat etmeliyim?
- Keep-alive: bir
ProxyAgentbağlantıları yeniden kullanır, bu nedenle döngülü modda bir bağlantı açık kaldığı sürece aynı çıkış IP'sini korur. Yeni bir IP almak için her şehir için bir agent oluşturun veya onu kapatın. - Saat dilimi ve yerel ayar: Playwright'ın
timezoneIdvelocaleseçenekleri tarayıcıyı şehirle eşleştirir; her şehir sayfası IANA dilimini verir (Miami:America/New_York). - SOCKS5: Chromium, SOCKS5 proxy'lerine kullanıcı adı göndermez; tarayıcılarda HTTP portunu kullanın.
- Zaman aşımları: fetch'te
AbortSignal.timeout(), Playwright'tatimeout. - Hız: her siteye yapılan istekleri ölçülü tutun ve robots.txt ile şartlarına uyun.
Sırada nereye gitmeliyim?
Beş dakikalık kurulumla başlayın, Python ve curl örnekleriyle karşılaştırın ve çıkışları proxy konumu denetleyicisiyle kontrol edin. Tüm dokümanlar: dokümantasyon.
Node.js hakkında başka neler soruluyor?
Hangi Node.js sürümüne ihtiyacım var?
AbortSignal.timeout için Node.js 18 veya üzeri ve .mjs dosyalarında top-level await gerekir. undici'yi npm install undici ile, Playwright'ı npm install playwright ile kurun.
Puppeteer da çalışır mı?
Evet: --proxy-server=http://gw.metroproxies.com:7777 ile başlatın ve ilk gezinmeden önce page.authenticate({ username, password }) çağırın.
Bu örnekler gateway'e karşı mı çalıştırıldı?
node --check ile sözdizimi kontrolünden geçirildi; USERNAME ve PASSWORD yer tutucudur. Kendi kimlik bilgilerinizle çalıştırın.