IP ויציאה של פרוקסי: איזה פורמט האפליקציה צריכה?
המירו רשומה מרשימת פרוקסי לכתובת HTTP או SOCKS, מלאו שדות מארח ויציאה נפרדים ועצבו כתובות IPv6 נכון.
יש אפליקציות שמבקשות IP:port. אחרות צריכות URL שמתחיל ב־http:// או ב־socks5://. הגדרות הדפדפן מפרידות לעיתים קרובות בין כתובת ליציאה. לכן אותה נקודת קצה יכולה להופיע בכמה פורמטים בלי שהכתובת תשתנה.
רשומת IPv4
נניח שרשימת פרוקסי HTTP מספקת את פרוקסי ה־HTTP לדוגמה 203.0.113.10:8080.
| האפליקציה מבקשת | הזינו |
|---|---|
| מארח או IP | 203.0.113.10 |
| יציאה | 8080 |
| URL של פרוקסי HTTP | http://203.0.113.10:8080 |
אל תכללו את היציאה פעמיים. אם באפליקציה כבר יש שדה יציאה, הזנת 203.0.113.10:8080 בשדה המארח עלולה לגרום לה לנסות לפתור את כל המחרוזת כשם מארח. כמו כן, אל תוסיפו סכמה לשדה שמצפה במפורש לכתובת IP בלבד.
הסכמה חייבת להתאים לשירות. בחרו 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 של IPv4 ושל IPv6 בסוגריים באמצעות מנתח ה־URL התקני:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
המאפיין hostname מחזיר את הכתובת ללא הסוגריים. פיצול המחרוזת המקורית בכל נקודתיים ישבש את הדוגמה. בכלי ייבוא אמיתי, דחו גם מארח חסר, סכמות שאינן נתמכות ויציאות מחוץ ל־1–65535. ניתוח URL מספק את רכיביו; הוא אינו מוכיח שהשירות קיים.
כשהרשימה כוללת שם משתמש וסיסמה
מבנה URL נפוץ הוא http://username:password@host:port. תווים כמו @, # ו־/ בתוך פרטי ההזדהות דורשים קידוד URL תקין. אם הלקוח מציע שדות נפרדים לפרטי הזדהות, בדרך כלל קל יותר להשתמש בהם מאשר להרכיב URL ידנית.
בדקו את הפורמט המקורי של הספק לפני המרת מחרוזת פרטי הזדהות המופרדים בנקודתיים. לארבעה שדות כאלה אין משמעות אוניברסלית, וגם הסיסמה עצמה עשויה להכיל נקודתיים. מנתח שנועד לשורות IP:port פשוטות אינו אמור לנחש בשקט פורמט אחר.