Một số ứng dụng cần IP:port. Số khác cần URL bắt đầu bằng http:// hoặc socks5://. Cài đặt trình duyệt thường tách địa chỉ và cổng thành hai trường. Vì vậy, cùng một điểm cuối có thể xuất hiện dưới nhiều định dạng mà không đổi địa chỉ.

Một mục IPv4

Giả sử một danh sách proxy HTTP đưa ra proxy HTTP ví dụ 203.0.113.10:8080.

Ứng dụng yêu cầuNhập
Máy chủ hoặc IP203.0.113.10
Cổng8080
URL proxy HTTPhttp://203.0.113.10:8080

Đừng nhập cổng hai lần. Nếu ứng dụng đã có ô cổng, đặt 203.0.113.10:8080 vào ô máy chủ có thể khiến nó cố phân giải cả chuỗi như một tên máy chủ. Tương tự, đừng thêm scheme vào trường nói rõ chỉ nhận địa chỉ IP.

Scheme phải khớp với dịch vụ. Chọn HTTP hoặc SOCKS5 theo khả năng hỗ trợ của máy khách trước khi chuyển đổi địa chỉ. Viết socks5:// trước điểm cuối HTTP làm thay đổi nội dung máy khách gửi đi; nó không bật SOCKS5 trên máy chủ đó.

IPv6 cần ngoặc vuông trong URL

Địa chỉ IPv6 đã chứa dấu hai chấm nên URL bao địa chỉ trong ngoặc vuông trước khi thêm cổng:

http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080

Không có ngoặc, ranh giới giữa địa chỉ và cổng sẽ mơ hồ. Ứng dụng có các trường riêng thường cần 2001:db8::10 làm máy chủ và 8080 làm cổng; hãy theo định dạng đầu vào của ứng dụng. Cả hai địa chỉ ở đây đều là ví dụ tài liệu, không phải proxy đang hoạt động.

Phân tích URL thay vì tách tại mọi dấu hai chấm

Một đoạn Python ngắn có thể xử lý URL IPv4 và IPv6 có ngoặc bằng bộ phân tích URL chuẩn:

from urllib.parse import urlsplit

proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)

Thuộc tính hostname trả về địa chỉ không có ngoặc. Tách chuỗi gốc tại mọi dấu hai chấm sẽ làm hỏng ví dụ này. Trong công cụ nhập thực tế, cũng từ chối mục thiếu máy chủ, scheme không được hỗ trợ và cổng ngoài 1–65535. Phân tích URL cho biết các thành phần của nó; không chứng minh dịch vụ tồn tại.

Khi danh sách có tên người dùng và mật khẩu

Một cấu trúc URL phổ biến là http://username:password@host:port. Những ký tự như @, # và / trong thông tin đăng nhập cần được mã hóa URL đúng cách. Nếu máy khách có các trường đăng nhập riêng, dùng chúng thường dễ hơn tự ghép URL.

Kiểm tra định dạng gốc của nhà cung cấp trước khi chuyển chuỗi đăng nhập phân cách bằng dấu hai chấm. Bốn trường phân cách như vậy không có ý nghĩa chung cho mọi nơi, và mật khẩu tự nó có thể chứa dấu hai chấm. Bộ phân tích dành cho dòng IP:port đơn giản không nên âm thầm đoán một định dạng khác.

Bài viết liên quan