סוכן עם תמיכת SOCKS יכול לבסס את חיבור היעד עבור לקוח ה-HTTPS של ליבת Node. כאשר socks-proxy-agent זמין ביישום:

const https = require('node:https');
const { SocksProxyAgent } = require('socks-proxy-agent');

const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const request = https.get('https://www.example.com/', {
  agent,
  signal: AbortSignal.timeout(15000),
}, (response) => {
  console.log(response.statusCode);
  response.on('error', console.error);
  response.resume();
});
request.on('error', console.error);

החליפו את נקודת הקצה לדוגמה במועמד לא מאומת מרשימת פרוקסי SOCKS5 עבור בקשת HTTPS ציבורית זו. פונקציית הקריאה החוזרת מרוקנת את התגובה לאחר הדפסת הסטטוס; צרכו את הגוף שם אם היישום זקוק לו. השתמשו בסוכן שוב עבור הפעולות שהוקצו לו, ואז השמידו אותו כאשר מדיניות הלקוח הזו מוסרת והעבודה שלו הסתיימה.

בחרו היכן נפתר שם היעד

בטיפול בכתובות URL של socks-proxy-agent, socks5h משאיר את פתרון שם המארח של היעד לנתיב הפרוקסי; socks5 פותר אותו מקומית. זה חשוב כאשר השם זמין רק ברשת של הפרוקסי.

כתובת ה-URL של HTTPS שומרת על זהות האתר. הסוכן מבצע משא ומתן SOCKS לפני ש-Node מתחיל TLS אל אותו אתר.

עבור שירות עם שם משתמש וסיסמה, הניחו את פרטי הגישה בכתובת ה-URL של הפרוקסי באמצעות קידוד רכיבי URI עבור תווים שמורים. הרחיקו את הכתובת המלאה מהלוגים. כותרות Authorization של היעד שייכות לחשבון האתר.

סוכן זה עובד עם ממשקי ה-API לבקשות HTTP/HTTPS של ליבת Node. fetch של Node משתמש בממשק dispatcher, לכן הגדירו בנפרד את שילוב ה-SOCKS הנתמך של אותו לקוח.

מאמרים קשורים