>  기사  >  웹 프론트엔드  >  nodejs에서 라우터 동적 IP를 얻는 방법

nodejs에서 라우터 동적 IP를 얻는 방법

王林
王林원래의
2023-05-12 10:29:36883검색

네트워크 프로그래밍을 할 때 라우터의 IP 주소를 얻는 것은 일반적인 요구 사항입니다. 웹 애플리케이션을 개발하든 네트워크 보안 작업을 하든 라우터의 동적 IP 주소를 얻는 것이 매우 중요합니다. Node.js에서 라우터의 동적 IP를 얻는 방법은 무엇입니까? 이 기사에서는 Node.js에서 라우터의 동적 IP를 얻는 방법을 자세히 소개합니다.

1. 동적 IP 주소 개념 이해

Node.js가 라우터의 동적 IP를 얻는 방법을 이해하기 전에 먼저 동적 IP 주소의 개념을 이해해야 합니다. 유동 IP 주소는 네트워크 상태나 사용자 요구의 변화로 인해 지속적으로 변경되는 IP 주소를 의미합니다. 즉, 사용자가 다시 시작하거나 게이트웨이가 ISP(인터넷 서비스 제공업체) 서비스에 다시 연결할 때마다 할당되는 IP 주소입니다. 라우터에 의해 변경이 있을 것입니다. 고정 IP 주소는 컴퓨터에 할당된 상주 IP 주소를 말하며 네트워크 상태나 사용자 요구 사항의 변화로 인해 변경되지 않습니다.

LAN에서 라우터의 동적 IP 주소는 일반적으로 DHCP 서버에 의해 자동으로 할당됩니다. 따라서 라우터의 동적 IP 주소를 얻으려면 Node.js 프로그래밍이 필요합니다.

2. Node.js를 사용하여 라우터의 동적 IP 주소 얻기

1. 라우터의 공용 IP 주소 얻기

Node.js에서 일반적인 방법은 라우터의 공용 IP를 얻기 위해 STUN 서버에 요청을 보내는 것입니다. 주소. . STUN 서버의 전체 이름은 NAT 장치 제한 문제를 해결하기 위해 설계된 네트워크 프로토콜로, 클라이언트의 네트워크 및 기타 정보를 확인할 수 있습니다. 클라이언트가 NAT 게이트웨이를 통과하는 UDP 패킷을 구성할 수 있도록 공통 네트워크 정보 세트를 제공합니다.

코드는 다음과 같습니다.

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

위 코드에서 stun.request 메소드는 지정된 STUN 서버에 요청을 보내고 획득한 라우터의 공용 IP 주소를 반환합니다. 콘솔 출력에서 ​​획득한 IP 주소를 볼 수 있습니다.

2. 라우터의 내부 IP 주소 얻기

Node.js에서는 네트워크 인터페이스 정보 API를 사용하여 라우터의 내부 IP 주소를 얻을 수 있습니다. 네트워크 인터페이스 정보 API에는 주로 IP 주소, 서브넷 마스크 등을 포함한 네트워크 인터페이스 정보가 포함됩니다. 이러한 네트워크 인터페이스를 반복하여 라우터 내부에 연결된 네트워크 인터페이스를 찾아 해당 IP 주소를 얻을 수 있습니다.

코드는 다음과 같습니다.

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);

위 코드에서는 os의 networkInterfaces 메소드를 호출하여 이 머신의 모든 네트워크 인터페이스 정보를 얻습니다. 그런 다음 네트워크 인터페이스 정보를 탐색하여 라우터에 연결된 인터페이스를 찾고 인터페이스의 IP 주소를 얻습니다.

3. 요약

이 글에서는 라우터의 공용 IP 주소와 인트라넷 IP 주소를 얻는 두 가지 방법인 라우터의 동적 IP 주소를 얻는 Node.js 방법을 주로 소개합니다. 이 글의 소개를 통해 독자들이 라우터의 IP 주소를 얻는 방법을 더 잘 이해하고 실제 애플리케이션에서 Node.js 프로그래밍 기술을 더 쉽게 사용할 수 있기를 바랍니다.

위 내용은 nodejs에서 라우터 동적 IP를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.