# Contoh kode proxy datacenter: curl, Python, Node.js dan Playwright

> Contoh kode proxy untuk curl, Python requests dan aiohttp, Node.js undici dan Playwright, HTTP dan SOCKS5. RackProxies: mulai US$1,29 per IP, tanpa KYC, kripto.

- URL: https://rackproxies.com/id/docs/code-examples/
- Terakhir diperbarui: 2026-10-19
- Publisher: RackProxies (https://rackproxies.com)

Cuplikan siap pakai untuk klien paling umum, masing-masing diuji sintaksnya. Setiap contoh mengarah ke api.ipify.org, httpbin.org/ip atau example.com.

**Jawaban singkat — Bagaimana cara menggunakan proxy datacenter dalam kode?**

Contoh kode proxy ini meneruskan satu URL `http://USERNAME:PASSWORD@IP:PORT` ke klien Anda: `-x` di curl, `proxies=` di Python requests, `ProxyAgent` di Node.js, opsi `proxy` di Playwright. SOCKS5 menggunakan `socks5h://`. IP **RackProxies** mendukung HTTP, HTTPS (CONNECT) dan SOCKS5, mulai US$1,29 per IPv4 dedicated untuk 30 hari. Tanpa KYC, hanya kripto.

## Cuplikan mana yang saya butuhkan?

*Alamat dokumentasi 203.0.113.24 dan port 8000 di setiap cuplikan: ganti dengan baris dari akun Anda.*

| Klien | Proxy HTTP | Proxy SOCKS5 | Paket tambahan |
| --- | --- | --- | --- |
| curl | `-x http://…` | `-x socks5h://…` | Tidak ada |
| Python requests | `proxies={…}` | URL `socks5h://` | `requests[socks]` untuk SOCKS5 |
| Python aiohttp | `proxy=` dan `proxy_auth=` | Tidak bawaan | `aiohttp-socks` untuk SOCKS5 |
| Node.js fetch | undici `ProxyAgent` | Tidak bawaan | `undici` |
| Node.js https | `https-proxy-agent` | `socks-proxy-agent` | Salah satu dari keduanya |
| Playwright | `proxy: { server, username, password }` | Gunakan HTTP atau allowlist | `playwright` |

## Bagaimana cara menggunakan proxy dengan curl?

Teruskan URL proxy dengan `-x`. curl menangani tunnel CONNECT untuk target `https://` dengan sendirinya. Semua cuplikan di halaman ini menggunakan alamat dokumentasi `203.0.113.24`; halaman [format koneksi](https://rackproxies.com/id/docs/connection-format/) menunjukkan cara membangun URL dari baris Anda.

*curl: HTTP, SOCKS5, login terpisah, allowlist*

```bash
# HTTP proxy, HTTPS target (CONNECT tunnel)
curl -x http://USERNAME:PASSWORD@203.0.113.24:8000 https://api.ipify.org

# SOCKS5, hostname resolved by the proxy
curl -x socks5h://USERNAME:PASSWORD@203.0.113.24:8000 https://api.ipify.org

# Login passed separately (no URL-encoding needed)
curl -x http://203.0.113.24:8000 -U 'USERNAME:PASSWORD' https://httpbin.org/ip

# IP allowlist: no login
curl -x http://203.0.113.24:8000 https://api.ipify.org

# Show the proxy handshake and the timings
curl -v -s -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' \
  -x http://USERNAME:PASSWORD@203.0.113.24:8000 https://example.com
```

## Bagaimana cara menggunakan proxy dengan Python requests?

Beri requests kamus `proxies` dengan URL yang sama untuk `http` dan `https`. Kunci `https` adalah yang digunakan untuk target `https://`; nilainya tetap diawali `http://` karena mendeskripsikan koneksi ke proxy. requests memunculkan `ProxyError` saat proxy menolak koneksi atau login.

*requests melalui proxy HTTP, dengan penanganan error*

```python
import requests  # pip install requests

# From the line 203.0.113.24:8000:USERNAME:PASSWORD in your account
proxy = 'http://USERNAME:PASSWORD@203.0.113.24:8000'
proxies = {'http': proxy, 'https': proxy}

try:
    response = requests.get('https://api.ipify.org', proxies=proxies, timeout=20)
    response.raise_for_status()
    print('Exit IP:', response.text)
except requests.exceptions.ProxyError as error:
    print('Proxy problem (credentials, port or allowlist):', error)
except requests.exceptions.Timeout:
    print('No answer within 20 seconds')
```

*permintaan melalui SOCKS5 (pip install "requests[socks]")*

```python
import requests  # pip install "requests[socks]"

# socks5h: the proxy resolves the hostname. Use the SOCKS5 port shown in your account.
proxy = 'socks5h://USERNAME:PASSWORD@203.0.113.24:8000'
proxies = {'http': proxy, 'https': proxy}

response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=20)
print(response.json())  # {'origin': '203.0.113.24'}
```

*Sesi untuk banyak permintaan melalui satu IP*

```python
import requests

# A Session reuses connections: faster for many requests through the same IP.
session = requests.Session()
session.proxies.update({
    'http': 'http://USERNAME:PASSWORD@203.0.113.24:8000',
    'https': 'http://USERNAME:PASSWORD@203.0.113.24:8000',
})
session.headers['User-Agent'] = 'my-monitor/1.0 (contact: you@example.com)'

for url in ['https://example.com', 'https://httpbin.org/ip']:
    response = session.get(url, timeout=20)
    print(url, response.status_code, len(response.content), 'bytes')
```

Setel `User-Agent` yang mencantumkan nama alat Anda dan kontak, seperti pada contoh Sesi: pemilik situs kemudian dapat menghubungi Anda alih-alih memblokir Anda. requests juga membaca variabel lingkungan `HTTP_PROXY` dan `HTTPS_PROXY` bila tidak ada argumen `proxies` yang diberikan.

## Bagaimana cara menggunakan proxy dengan Python aiohttp?

aiohttp menerima proxy per permintaan: `proxy=` untuk alamat dan `proxy_auth=` untuk login. Ini mendukung proxy HTTP, termasuk CONNECT untuk target `https://`. Untuk SOCKS5 diperlukan paket `aiohttp-socks` terpisah.

*aiohttp melalui proxy HTTP*

```python
import asyncio

import aiohttp  # pip install aiohttp (HTTP proxies; SOCKS needs the aiohttp-socks package)

PROXY = 'http://203.0.113.24:8000'
AUTH = aiohttp.BasicAuth('USERNAME', 'PASSWORD')


async def main():
    timeout = aiohttp.ClientTimeout(total=20)
    async with aiohttp.ClientSession(timeout=timeout) as session:
        async with session.get('https://httpbin.org/ip', proxy=PROXY, proxy_auth=AUTH) as response:
            print(await response.json())


asyncio.run(main())
```

## Bagaimana cara menggunakan proxy dengan Node.js?

`fetch` bawaan Node tidak menerima argumen proxy, jadi gunakan paket `undici` dan `ProxyAgent`-nya sebagai `dispatcher`. Untuk modul `https` klasik, gunakan `https-proxy-agent` untuk proxy HTTP dan `socks-proxy-agent` untuk SOCKS5. Kedua cuplikan adalah ES module: simpan sebagai file `.mjs`.

*fetch dengan ProxyAgent undici*

```javascript
// npm install undici
import { ProxyAgent, fetch } from 'undici';

const dispatcher = new ProxyAgent({
  uri: 'http://203.0.113.24:8000',
  token: `Basic ${Buffer.from('USERNAME:PASSWORD').toString('base64')}`,
});

const response = await fetch('https://api.ipify.org', { dispatcher });
console.log('Exit IP:', await response.text());
```

*https dengan https-proxy-agent dan socks-proxy-agent*

```javascript
// npm install https-proxy-agent socks-proxy-agent
import https from 'node:https';
import { HttpsProxyAgent } from 'https-proxy-agent';
import { SocksProxyAgent } from 'socks-proxy-agent';

const httpAgent = new HttpsProxyAgent('http://USERNAME:PASSWORD@203.0.113.24:8000');
// Use the SOCKS5 port shown in your account; socks5h lets the proxy resolve DNS.
const socksAgent = new SocksProxyAgent('socks5h://USERNAME:PASSWORD@203.0.113.24:8000');

for (const agent of [httpAgent, socksAgent]) {
  https.get('https://api.ipify.org', { agent }, (res) => {
    res.setEncoding('utf8');
    res.on('data', (chunk) => console.log('Exit IP:', chunk));
  }).on('error', (err) => console.error('Proxy error:', err.message));
}
```

## Bagaimana cara menggunakan proxy dengan Playwright?

Berikan objek `proxy` ke `chromium.launch()` dengan server dan, secara terpisah, nama pengguna dan kata sandi. Gunakan format HTTP: klien SOCKS5 bawaan Chromium secara historis tidak mendukung autentikasi nama pengguna dan kata sandi untuk proxy SOCKS5. Dengan allowlist IP, hilangkan `username` dan `password`.

*Playwright (Chromium) melalui proxy HTTP*

```javascript
// npm install playwright && npx playwright install chromium
import { chromium } from 'playwright';

const browser = await chromium.launch({
  proxy: { server: 'http://203.0.113.24:8000', username: 'USERNAME', password: 'PASSWORD' },
});
const page = await browser.newPage();
await page.goto('https://api.ipify.org');
console.log('Exit IP:', await page.textContent('body'));
await browser.close();
```

Gunakan browser melalui proxy untuk QA situs Anda sendiri, pemeriksaan iklan dan lokalisasi, serta pekerjaan sah serupa. Ingat bahwa proxy hanya mengubah IP: bahasa dan zona waktu browser tetap milik mesin Anda kecuali Anda menyetelnya di konteks browser.

## Bagaimana cara mengukur latensi melalui proxy?

Waktu beberapa permintaan lengkap dan ambil mediannya. Cuplikan Python di bawah mengirim lima permintaan ke `https://example.com` melalui satu IP. Jalankan melalui IP di berbagai kota datacenter untuk membandingkannya; [panduan kota](https://rackproxies.com/id/guides/choose-a-datacenter-city/) menjelaskan batas fisik untuk setiap jarak.

*Waktu permintaan median melalui proxy*

```python
import statistics
import time

import requests

proxy = 'http://USERNAME:PASSWORD@203.0.113.24:8000'
timings = []
for _ in range(5):
    start = time.perf_counter()
    requests.get('https://example.com', proxies={'http': proxy, 'https': proxy}, timeout=20)
    timings.append((time.perf_counter() - start) * 1000)

print(f'median {statistics.median(timings):.0f} ms over {len(timings)} requests')
```

## Bagaimana cara menggunakan seluruh daftar IP?

Muat ekspor TXT Anda, ubah setiap baris menjadi URL dan pilih IP per permintaan: round-robin antar situs, atau IP yang sama untuk situs yang sama. [Panduan rotating vs static](https://rackproxies.com/id/guides/rotating-vs-static-datacenter-proxies/) memiliki contoh lengkap, dan halaman [format koneksi](https://rackproxies.com/id/docs/connection-format/) memiliki konverter untuk seluruh daftar. Patuhi kecepatan setiap situs berapa pun ukuran daftar Anda: lebih banyak IP tidak menaikkan batas suatu situs.

## Pertanyaan contoh kode

### Mengapa saya menggunakan http:// untuk proxy padahal situsnya https://?

Skema URL proxy menjelaskan koneksi Anda ke proxy, bukan ke situs web. Klien Anda terhubung ke proxy melalui TCP biasa, memintanya membuka terowongan CONNECT, lalu menjalankan TLS dengan situs web di dalamnya. Konten halaman tetap terenkripsi end to end; hanya login proxy yang dikirim dalam bentuk terbaca.

### Kata sandi saya memiliki karakter khusus. Apa yang berubah?

Dalam bentuk URL, enkode kata sandi dengan `urllib.parse.quote(password, safe='')` di Python atau `encodeURIComponent(password)` di JavaScript. Klien yang menerima login secara terpisah, seperti `BasicAuth` aiohttp, `username` dan `password` Playwright, atau `-U` curl, tidak memerlukan encoding. Halaman [format koneksi](https://rackproxies.com/id/docs/connection-format/) mencantumkan karakternya.

### Mengapa requests mengatakan dependensi untuk dukungan SOCKS tidak ada?

Dukungan SOCKS pada requests berada di extra opsional. Pasang dengan `pip install "requests[socks]"`, yang menambahkan PySocks, dan gunakan URL `socks5h://` agar proxy yang me-resolve nama host. Proxy HTTP berfungsi tanpa paket tambahan apa pun, jadi Anda juga dapat mengganti URL ke `http://` dan membiarkan dependensi Anda tidak berubah.

### Bisakah saya menjalankan banyak permintaan secara paralel melalui satu IP?

Ya, dalam batas penggunaan wajar; kami tidak memublikasikan batas koneksi per IP. Jaga paralelisme yang wajar untuk stabilitas Anda sendiri, dan patuhi kecepatan setiap situs web: permintaan paralel ke situs yang sama tetap dihitung terhadap batasnya. Ditagih per IP untuk 30 hari, bukan per GB, dengan kebijakan fair-use.

### URL uji mana yang harus dipanggil kode saya terlebih dahulu?

Panggil `https://api.ipify.org` atau `https://httpbin.org/ip`: masing-masing mengembalikan IP yang dilihatnya, sehingga Anda dapat memastikan lalu lintas keluar dari proxy Anda. Lalu panggil target asli Anda. Jika URL uji berfungsi dan target tidak, masalahnya ada antara proxy dan target, bukan di kode Anda.

### Apakah saya perlu ID untuk mendapatkan proxy untuk contoh-contoh ini?

Tidak. Tanpa KYC: tanpa ID, tanpa selfie, tanpa dokumen untuk mendaftar, top up, atau membeli. Isi ulang dalam BTC, USDT, USDC, ETH, SOL, LTC, beli paket dari US$1,29, dan salin baris dari akun Anda ke cuplikan. Lihat [harga](https://rackproxies.com/id/pricing/) untuk setiap ukuran paket.

**Jalankan contoh dengan IP Anda sendiri** 1 IP untuk US$1,29, termasuk HTTP dan SOCKS5. Tanpa KYC, dibayar dengan kripto. [Lihat harga](https://rackproxies.com/id/pricing/) · [Mulai cepat](https://rackproxies.com/id/docs/quickstart/)

## Referensi

1. [halaman man curl](https://curl.se/docs/manpage.html) — curl project (2026-10-19)
2. [Requests: Proxies and SOCKS](https://requests.readthedocs.io/en/latest/user/advanced/) — Requests (2026-10-19)
3. [aiohttp: Proxy support](https://docs.aiohttp.org/en/stable/client_advanced.html) — aiohttp (2026-10-19)
4. [undici: ProxyAgent](https://undici.nodejs.org/) — Node.js (2026-10-19)
5. [proxy-agents (https-proxy-agent, socks-proxy-agent)](https://github.com/TooTallNate/proxy-agents) — GitHub (2026-10-19)
6. [Playwright: proxy HTTP](https://playwright.dev/docs/network) — Playwright (2026-10-19)

---

RackProxies: RackProxies adalah penyedia proxy datacenter khusus: alamat IPv4 disewa per IP untuk 30 hari, dibayar dengan kripto tanpa unggah ID. Halaman mencakup 22 negara dan 34 kota datacenter dengan data jaringan publik.
