Mesin dengan beberapa alamat lokal mungkin memerlukan salah satunya untuk koneksinya ke proxy penerus. cURL dapat membuat kedua pilihan secara eksplisit:

curl_setopt_array($handle, [
    CURLOPT_URL => 'https://example.com/',
    CURLOPT_INTERFACE => '192.0.2.20',
    CURLOPT_PROXY => 'http://proxy.example:8080',
]);

Ini adalah konfigurasi ilustratif untuk handle cURL yang sudah ada. Ganti 192.0.2.20 dengan alamat sumber yang benar-benar tersedia di mesin yang menjalankan PHP. Untuk permintaan publik yang diizinkan tanpa akun proxy, daftar proxy HTTP dapat menyediakan pendengar jarak jauh untuk nilai proxy.

CURLOPT_INTERFACE memilih sisi lokal dari koneksi keluar. CURLOPT_PROXY memilih perantara yang membawa permintaan ke depan. Memilih sumber lokal tidak mengubah mesin menjadi proxy jarak jauh atau memberinya IP publik sembarangan.

Pada jalur ini, pilihan lokal memengaruhi koneksi menuju proxy. Situs web umumnya melihat alamat sumber lanjutan proxy. NAT di antara salah satu pasangan dapat lebih jauh menerjemahkan alamat yang dilihat setiap penerima.

Jika pemilihan antarmuka dihilangkan, libcurl membiarkan tumpukan TCP memilih sumber yang sesuai. Pilihan itu mengikuti konfigurasi jaringan mesin; bukan aturan universal bahwa alamat pertama dalam file konfigurasi menang.

libcurl menerima nama antarmuka pada platform yang didukung, tetapi dokumentasinya mengecualikan pemilihan nama antarmuka Windows untuk opsi ini. Menggunakan nama host juga dapat memicu pencarian yang memblokir. Alamat lokal yang diketahui adalah masukan yang lebih jelas ketika itulah pilihan yang dimaksud aplikasi.

Artikel terkait