Rumah  >  Artikel  >  hujung hadapan web  >  Nodejs menentukan sama ada ejen itu tersedia

Nodejs menentukan sama ada ejen itu tersedia

WBOY
WBOYasal
2023-05-28 14:11:40798semak imbas

Dengan populariti Internet, permintaan untuk menggunakan proksi juga semakin tinggi. Memahami sama ada proksi tersedia adalah langkah yang sangat penting Ia berkaitan dengan sama ada kita boleh menggunakan proksi untuk melayari Internet dengan selamat. Artikel ini akan memperkenalkan cara menggunakan Node.js untuk menentukan sama ada proksi tersedia.

1. Apakah itu proksi

Proksi ialah kaedah komunikasi rangkaian, dalam istilah orang awam, orang tengah yang memajukan permintaan kami kepada pelayan dan kemudian mengembalikan respons kepada kami. Proksi boleh dibahagikan kepada proksi hadapan dan proksi songsang.

Proksi ke hadapan bermakna pelanggan menghantar permintaan kepada proksi, dan kemudian proksi menghantarnya ke pelayan sasaran dan mengembalikan respons pelayan kepada klien.

Proksi songsang bermaksud pelayan menghantar permintaan kepada proksi, dan proksi menghantar permintaan kepada klien dan mengembalikan respons klien kepada pelayan. Proksi terbalik boleh digunakan untuk pengimbangan beban, keselamatan tambahan dan banyak lagi.

2. Mengapa menggunakan proksi

Terdapat banyak faedah menggunakan proksi:

1. Sesetengah tapak web atau apl dihadkan kepada alamat IP tertentu dan jika anda mempunyai berbilang alamat IP, anda boleh menggunakan proksi untuk mengaksesnya dengan mudah.

2. Menggunakan proksi boleh melindungi privasi anda dengan lebih baik. Proksi boleh memberi anda pengalaman penyemakan imbas yang lebih selamat kerana pelayan proksi boleh menyembunyikan alamat IP sebenar anda dan perkara yang anda akses.

3. Proksi boleh membantu anda mengakses tapak web yang disekat. Di sesetengah negara atau wilayah, kerajaan atau agensi lain boleh menyekat akses kepada tapak web tertentu Jika anda menggunakan alamat IP terhad, anda tidak akan dapat mengakses tapak web ini, anda boleh menggunakan proksi untuk mengaksesnya.

3. Bagaimana untuk menentukan sama ada ejen tersedia

Menggunakan Node.js, anda boleh dengan mudah menentukan sama ada ejen itu tersedia di bawah.

1. Gunakan modul http untuk mengesan sama ada proksi tersedia

Menggunakan modul http boleh menguji proksi dengan mudah adalah seperti berikut:

const http = require('http');

// 可用代理列表
const proxyList = [
  'http://127.0.0.1:8080',
  'http://127.0.0.1:8888',
  'http://127.0.0.1:1080',
];

// 请求目标地址
const options = {
  host: 'www.baidu.com',
  port: 80,
  path: '/',
  method: 'GET'
};

// 测试代理是否可用
const testProxy = (proxy) => {
  const req = http.request(options);

  req.setTimeout(1000, () => {
    console.log(`${proxy} timeout`);
    req.abort();
  });

  req.on('error', (error) => {
    console.log(`${proxy} error: ${error.message}`);
  });

  req.on('response', (res) => {
    console.log(`${proxy} statusCode: ${res.statusCode}`);
  });

  // 将请求发送到代理服务器
  req.end();
};

// 检测代理
proxyList.forEach((proxy) => {
  testProxy(proxy);
});

Dalam kod di atas, tentukan dahulu Senarai pelayan proksi dan alamat sasaran kemudiannya ditakrifkan, dan fungsi testProxy digunakan untuk mengesan sama ada proksi tersedia. Dalam fungsi testProxy, gunakan kaedah http.request untuk menghantar permintaan ke alamat sasaran Jika permintaan berjaya, proksi tersedia. Jika tidak, ejen tidak tersedia.

Akhir sekali, putar senarai pelayan proksi, menguji setiap proksi secara bergilir.

2. Gunakan modul permintaan untuk mengesan sama ada proksi tersedia

Berbanding dengan modul http, modul permintaan lebih mudah digunakan dan lebih berkuasa. Berikut ialah kod khusus untuk menggunakan modul permintaan untuk mengesan proksi:

const request = require('request');

// 可用代理列表
const proxyList = [
  'http://127.0.0.1:8080',
  'http://127.0.0.1:8888',
  'http://127.0.0.1:1080',
];

// 请求目标地址
const options = {
  url: 'https://www.baidu.com',
  method: 'GET'
};

// 测试代理是否可用
const testProxy = (proxy) => {
  options.proxy = proxy;

  request(options, (error, res, body) => {
    if (error) {
      console.log(`${proxy} error: ${error.message}`);
    } else {
      console.log(`${proxy} statusCode: ${res.statusCode}`);
    }
  });
};

// 检测代理
proxyList.forEach((proxy) => {
  testProxy(proxy);
});

Dalam kod di atas, senarai pelayan proksi dan alamat sasaran ditakrifkan dahulu, dan kemudian fungsi testProxy ditakrifkan untuk mengesan sama ada proksi tersedia. Dalam fungsi testProxy, gunakan kaedah permintaan untuk menghantar permintaan ke alamat sasaran dan tetapkan proksi kepada proksi yang sedang diuji. Jika permintaan berjaya, proksi tersedia. Jika tidak, ejen tidak tersedia.

Akhir sekali, putar senarai pelayan proksi, menguji setiap proksi secara bergilir-gilir.

4. Ringkasan

Artikel ini memperkenalkan cara menggunakan Node.js untuk mengesan dengan cepat sama ada proksi tersedia. Menggunakan kaedah di atas, anda boleh menguji proksi dengan mudah dan memilih pelayan proksi yang tersedia untuk akses Internet. Apabila menggunakan pelayan proksi, anda perlu memberi perhatian kepada keselamatan dan kestabilan untuk mengelakkan isu keselamatan dan pemutusan rangkaian.

Atas ialah kandungan terperinci Nodejs menentukan sama ada ejen itu tersedia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn