บางแอปต้องการ IP:port ส่วนบางแอปต้องใช้ URL ที่ขึ้นต้นด้วย http:// หรือ socks5:// การตั้งค่าเบราว์เซอร์มักแยกที่อยู่กับพอร์ตเป็นคนละช่อง ปลายทางเดียวกันจึงแสดงได้หลายรูปแบบโดยที่ที่อยู่ไม่ได้เปลี่ยน

รายการ IPv4

สมมติว่ารายการพร็อกซี HTTP ให้พร็อกซี HTTP ตัวอย่าง 203.0.113.10:8080

สิ่งที่แอปขอค่าที่กรอก
โฮสต์หรือ IP203.0.113.10
พอร์ต8080
URL พร็อกซี HTTPhttp://203.0.113.10:8080

อย่าใส่พอร์ตซ้ำสองครั้ง หากแอปมีช่องพอร์ตอยู่แล้ว การใส่ 203.0.113.10:8080 ในช่องโฮสต์อาจทำให้แอปพยายามแปลงทั้งสตริงเป็นชื่อโฮสต์ เช่นเดียวกัน อย่าเติม scheme ในช่องที่ระบุชัดว่ารับเพียงที่อยู่ IP

scheme ต้องตรงกับบริการ เลือก HTTP หรือ SOCKS5 ตามการรองรับของไคลเอนต์ ก่อนแปลงที่อยู่ การเติม socks5:// หน้าปลายทาง HTTP เปลี่ยนสิ่งที่ไคลเอนต์ส่ง แต่ไม่ได้เปิด SOCKS5 บนเซิร์ฟเวอร์นั้น

IPv6 ใน URL ต้องมีวงเล็บเหลี่ยม

ที่อยู่ IPv6 มีเครื่องหมายโคลอนอยู่แล้ว URL จึงครอบที่อยู่ด้วยวงเล็บเหลี่ยมก่อนเติมพอร์ต:

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

หากไม่มีวงเล็บ จะไม่ชัดว่าอะไรคือที่อยู่และอะไรคือพอร์ต แอปที่แยกช่องมักต้องการ 2001:db8::10 เป็นโฮสต์ และ 8080 เป็นพอร์ต ให้ทำตามรูปแบบรับข้อมูลของแอปนั้น ที่อยู่ทั้งสองในบทความนี้เป็นตัวอย่างสำหรับเอกสาร ไม่ใช่พร็อกซีที่ใช้งานจริง

แยกวิเคราะห์ URL แทนการตัดทุกโคลอน

สคริปต์ Python สั้น ๆ ใช้ตัวแยกวิเคราะห์ URL มาตรฐานจัดการ URL แบบ IPv4 และ IPv6 ที่มีวงเล็บได้:

from urllib.parse import urlsplit

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

พร็อพเพอร์ตี hostname คืนค่าที่อยู่โดยไม่มีวงเล็บ การตัดสตริงเดิมที่โคลอนทุกตัวจะทำให้ตัวอย่างนี้ผิดพลาด ในตัวนำเข้าจริงให้ปฏิเสธโฮสต์ที่ขาดหาย scheme ที่ไม่รองรับ และพอร์ตนอกช่วง 1–65535 ด้วย การแยกวิเคราะห์ URL ให้ส่วนประกอบของมัน แต่ไม่ได้พิสูจน์ว่ามีบริการอยู่

เมื่อรายการมีชื่อผู้ใช้และรหัสผ่าน

รูปแบบ URL ที่พบบ่อยคือ http://username:password@host:port อักขระอย่าง @, # และ / ในข้อมูลรับรองต้องเข้ารหัส URL อย่างถูกต้อง หากไคลเอนต์มีช่องข้อมูลรับรองแยกไว้ การใช้ช่องเหล่านั้นมักง่ายกว่าประกอบ URL เอง

ตรวจรูปแบบต้นฉบับของผู้ให้บริการก่อนแปลงสตริงข้อมูลรับรองที่คั่นด้วยโคลอน ช่องสี่ช่องที่คั่นแบบนี้ไม่มีความหมายสากล และรหัสผ่านเองอาจมีโคลอน ตัวแยกวิเคราะห์ที่ออกแบบสำหรับบรรทัด IP:port ธรรมดาไม่ควรเดารูปแบบอื่นโดยไม่แจ้ง

บทความที่เกี่ยวข้อง