Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk mendapatkan ip dinamik penghala dalam nodejs

Bagaimana untuk mendapatkan ip dinamik penghala dalam nodejs

王林
王林asal
2023-05-12 10:29:36939semak imbas

Apabila melakukan pengaturcaraan rangkaian, mendapatkan alamat IP penghala adalah keperluan biasa. Sama ada anda sedang membangunkan aplikasi web atau bekerja pada keselamatan rangkaian, adalah sangat penting untuk mendapatkan alamat IP dinamik penghala anda. Bagaimana untuk mendapatkan IP dinamik penghala dalam Node.js? Artikel ini akan memperkenalkan secara terperinci kaedah mendapatkan IP dinamik penghala dalam Node.js.

1. Fahami konsep alamat IP dinamik

Sebelum memahami cara Node.js mendapatkan IP dinamik penghala, kita perlu terlebih dahulu memahami konsep alamat IP dinamik. Alamat IP dinamik merujuk kepada alamat IP yang sentiasa berubah disebabkan oleh perubahan dalam keadaan rangkaian atau keperluan pengguna Maksudnya, setiap kali pengguna dimulakan semula atau get laluan menyambung semula ke perkhidmatan ISP (Penyedia Perkhidmatan Internet), alamat IP diberikan. oleh penghala Akan ada perubahan. Alamat IP statik merujuk kepada alamat IP pemastautin yang diberikan kepada mesin dan tidak akan berubah disebabkan oleh perubahan dalam keadaan rangkaian atau keperluan pengguna.

Dalam LAN, alamat IP dinamik penghala biasanya diberikan secara automatik oleh pelayan DHCP. Oleh itu, pengaturcaraan Node.js diperlukan untuk mendapatkan alamat IP dinamik penghala.

2. Gunakan Node.js untuk mendapatkan alamat IP dinamik penghala

1 Dapatkan alamat IP awam penghala

Dalam Node.js, kaedah biasa kami adalah dengan The. Pelayan STUN menghantar permintaan untuk mendapatkan alamat IP awam penghala. Nama penuh pelayan STUN ialah Simple Traversal of UDP through NATs (NAT penetration) Ia adalah protokol rangkaian yang direka untuk menyelesaikan masalah had peranti NAT Ia boleh dihuraikan oleh pelayan untuk menentukan rangkaian di mana klien berada maklumat lain, menyediakan pelanggan dengan Menyediakan set maklumat rangkaian biasa supaya pelanggan boleh membina paket UDP yang melintasi get laluan NAT.

Kod adalah seperti berikut:

const stun = require('stun');
const { address } = stun.request('stun.l.google.com:19302');
console.log(address);

Dalam kod di atas, kaedah stun.request akan menghantar permintaan ke pelayan STUN yang ditentukan dan mengembalikan alamat IP awam penghala yang diperolehi. Dalam output konsol, anda boleh melihat alamat IP yang diperolehi.

2. Dapatkan alamat IP dalaman penghala

Dalam Node.js, anda boleh menggunakan API maklumat antara muka rangkaian untuk mendapatkan alamat IP dalaman penghala. API maklumat antara muka rangkaian terutamanya mengandungi maklumat antara muka rangkaian, termasuk alamat IP, topeng subnet, dsb. Kita boleh lelaran melalui antara muka rangkaian ini, mencari antara muka rangkaian yang disambungkan ke bahagian dalam penghala, dan mendapatkan alamat IPnya.

Kod adalah seperti berikut:

const os = require('os');
const interfaces = os.networkInterfaces();
let ip = '';
Object.keys(interfaces).forEach(key => {
  interfaces[key].forEach(item => {
    if (item.family === 'IPv4' && !item.internal) {
      ip = item.address;
    }
  });
});
console.log(ip);

Dalam kod di atas, kami memperoleh semua maklumat antara muka rangkaian mesin dengan memanggil kaedah networkInterfaces os. Kemudian lintasi maklumat antara muka rangkaian untuk mencari antara muka yang disambungkan ke penghala dan dapatkan alamat IP antara muka.

3. Ringkasan

Artikel ini terutamanya memperkenalkan kaedah Node.js untuk mendapatkan alamat IP dinamik penghala, yang melibatkan dua kaedah untuk mendapatkan alamat IP awam dan alamat IP intranet penghala. Melalui pengenalan artikel ini, saya berharap ia dapat membantu pembaca lebih memahami kaedah mendapatkan alamat IP penghala, dan memudahkan penggunaan teknologi pengaturcaraan Node.js dalam aplikasi praktikal.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan ip dinamik penghala dalam nodejs. 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