Node-ийн Undici ашиглан прокси IP хэрэглэх
Undici ProxyAgent-ийг нэг fetch хүсэлтэд өгч холболтын санг бусад Node урсгалаас тусгаарла.
Undici хүсэлтийг dispatcher-ээр дамжуулна. Сонгосон HTTP проксид ProxyAgent үүсгээд бүх процессын global dispatcher-ийг өөрчлөхийн оронд fetch дуудлагад өг.
npm install [email protected]
import { fetch, ProxyAgent } from 'undici';
const dispatcher = new ProxyAgent('http://203.0.113.10:8080');
try {
const response = await fetch('https://example.com/', {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
console.log(await response.text());
} finally {
await dispatcher.close();
}
Програмыг .mjs файл болгон хадгал эсвэл ES модуль төсөл ашигла. Баримтын IP-г HTTP проксийн жагсаалтаас HTTP проксигоор соль. Импорт зориуд Undici-ийн fetch хэрэгжүүлэлтийг ашигласан тул dispatcher сонголт жишээний клиентэд хамаарна.
IP-г буруутгахаасаа өмнө Node нийцлийг шалга
Undici-ийн дэмждэг Node хувилбар багцын гаргалтаас хамаардаг. Жишээ Undici 8.12.3 ашиглаж Node 22.19.0 эсвэл шинэ хувилбар шаарддаг. Модуль ачаалах эсвэл хөдөлгүүрийн хувилбарын алдаа хүсэлт проксид хүрэхээс өмнө гарна. Бүх Node хамгийн шинэ Undici-г ажиллуулна гэж үзэхгүй, суулгасан багцын шаардлагыг шалга.
Нэг agent давтагдсан хүсэлтэд үйлчилж болно
Богино програм дуусахдаа dispatcher-ээ хаана. Ажиллаж буй програм ижил цэгээр хэд хэдэн хүсэлт илгээвэл agent-ийг тухайн ажилд хадгалж, ажил дуусмагц хаа. URL бүрд agent үүсгэж хаах нь холболтыг ашигтай дахин хэрэглэхэд саад болно.
Global dispatcher зөвхөн илүү өргөн өөрчлөлтийг зорьсон үед тохирно. Тодорхой дамжуулах нь өөр бүрэлдэхүүний гарах хүсэлтийг өөрчлөхгүйгээр прокси IP туршихыг хялбарчилна.
Хариу болон алдааны шатыг хар
Fetch HTTP алдааны бүх төлвийг татгалзсан Promise гэж үзэхгүй. 403 эсвэл 429 проксигоор дамжсан сайтын бодит хариу байж болно. Холболт эсвэл туннелийн алдаа харин хариуны объект үүсэхээс өмнө хүсэлтийг татгалзуулж болно. Төлвийг дуудлагаас шидэгдсэн алдаанаас тусад нь унш.
Баталгаажуулалт шаардлагатай бол Undici ProxyAgent байгуулагчийн сонголттой. Проксийн эрх олгох толгойг сайт руу явуулах хүсэлтийн толгойд бүү нэм; agent өөр холболтын хэсгийг зохицуулдаг.