Binding IPv6 dan IPVersion Keluar di Proksi HTTP Indy
Tambahkan binding lokal IPv4/IPv6 eksplisit sebelum aktivasi; pilih keluarga hop berikutnya yang diperlukan pada OutboundClient sebelum ia terhubung.
ProxyServer.Bindings.Clear;
with ProxyServer.Bindings.Add do
begin
IPVersion := Id_IPv4;
IP := '127.0.0.1';
Port := 8080;
end;
with ProxyServer.Bindings.Add do
begin
IPVersion := Id_IPv6;
IP := '::1';
Port := 8080;
end;Terapkan ini pada TIdHTTPProxyServer yang ada dan tidak aktif, lalu gunakan aktivasi normalnya. Alamat loopback sengaja hanya menerima klien lokal; penggunaan jarak jauh memerlukan alamat antarmuka yang terjangkau dan kontrol akses. Verifikasi batas akses yang dihasilkan sebelum mengekspos pendengar tersebut.
Binding masuk dan soket keluar menjalankan tugas yang berbeda:
| Soket | Pemilihan keluarga |
|---|---|
| Klien mencapai proksi | Setiap entri Bindings eksplisit |
| Proksi mencapai hop berikutnya | OutboundClient.IPVersion milik konteks |
Karena itu, pendengar IPv6 tidak memaksa setiap tujuan memakai IPv6. Jika beban kerja memerlukan keluarga hop berikutnya yang eksplisit, setel di OnHTTPBeforeCommand sebelum klien tersebut terhubung, sesuai jalur tujuan yang dimaksud.
Pisahkan kegagalan pendengar dari kegagalan hop berikutnya ketika satu sisi berfungsi. Mengandalkan binding otomatis jika tidak dapat memasukkan asumsi yang bergantung pada platform ke dalam perbandingan.