Một máy có nhiều địa chỉ cục bộ có thể cần một trong số đó cho kết nối tới proxy chuyển tiếp. cURL có thể thực hiện cả hai lựa chọn một cách tường minh:

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

Đây là cấu hình minh họa cho một handle cURL đã tồn tại. Thay 192.0.2.20 bằng một địa chỉ nguồn thực sự có trên máy đang chạy PHP. Với một yêu cầu công khai được phép mà không có tài khoản proxy, danh sách proxy HTTP có thể cung cấp trình lắng nghe từ xa cho giá trị proxy.

CURLOPT_INTERFACE chọn phía cục bộ của kết nối đi ra. CURLOPT_PROXY chọn trung gian mang yêu cầu đi tiếp. Việc chọn nguồn cục bộ không biến máy đó thành proxy từ xa cũng không cấp cho nó một IP công khai tùy ý.

Trên đường đi này, lựa chọn cục bộ ảnh hưởng đến kết nối về phía proxy. Trang web thường thấy địa chỉ nguồn tiếp theo của proxy. NAT giữa bất kỳ cặp nào cũng có thể dịch thêm địa chỉ mà mỗi bên nhận thấy.

Nếu bỏ qua lựa chọn giao diện, libcurl để ngăn xếp TCP chọn một nguồn phù hợp. Lựa chọn đó tuân theo cấu hình mạng của máy; không có quy tắc phổ quát rằng địa chỉ đầu tiên trong tệp cấu hình sẽ thắng.

libcurl chấp nhận tên giao diện trên các nền tảng được hỗ trợ, nhưng tài liệu của nó loại trừ việc chọn tên giao diện Windows cho tùy chọn này. Dùng hostname cũng có thể kích hoạt một tra cứu gây chặn. Một địa chỉ cục bộ đã biết là đầu vào rõ ràng hơn khi đó là lựa chọn mà ứng dụng nhắm tới.

Bài viết liên quan