JS获取本机IP

JS获取本机IP

JS获取本机IP

在进行网络通信或者其他与网络相关的操作时,有时候需要获取本机的IP地址。在JavaScript中,我们可以通过一些方法来获取本机的IP地址。本文将详细介绍如何使用JavaScript获取本机IP地址。

使用WebRTC API获取本机IP

WebRTC(Web Real-Time Communication)是一种可以在网页浏览器之间实现实时通信的技术。通过WebRTC API,我们可以获取到本地IP地址。

以下是一个简单的JavaScript代码示例,通过WebRTC API获取本机IP地址:

// 创建一个RTCPeerConnection对象
const pc = new RTCPeerConnection();

// 创建一个临时的数据通道
pc.createDataChannel("");

// 获取本机IP地址
pc.createOffer().then(offer => {
  pc.setLocalDescription(offer);
}).catch(err => {
  console.error(err);
});

// 监听candidate事件,获取IP地址
pc.onicecandidate = e => {
  if (e.candidate) {
    const ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
    const match = e.candidate.candidate.match(ipRegex);
    if (match) {
      const ip = match[1];
      console.log("本机IP地址: ", ip);
    }
  }
};

上面的代码会输出本机的IP地址,通过console.log打印出来。

使用第三方服务获取本机IP

除了使用WebRTC API之外,还可以使用第三方服务来获取本机IP地址。有一些网站提供了免费的接口来获取IP地址信息,我们可以通过发送HTTP请求来获取。以下是一个示例代码:

fetch('https://api.ipify.org?format=json')
  .then(response => response.json())
  .then(json => {
    console.log("本机IP地址: ", json.ip);
  })
  .catch(err => {
    console.error(err);
  });

上面的代码使用了ipify这个网站的API来获取本机IP地址,通过fetch发送HTTP请求并解析返回的JSON数据,最终打印出IP地址。

使用DNS查询获取本机IP

另一种获取本机IP地址的方法是通过DNS查询。我们可以使用一个公共的DNS服务器,比如Google的8.8.8.8,来获取IP地址。以下是一个示例代码:

const dns = require('dns');

dns.resolve4('google.com', (err, addresses) => {
  if (err) {
    console.error(err);
  } else {
    console.log("本机IP地址: ", addresses[0]);
  }
});

上面的代码通过查询google.com的IP地址来获取本机IP地址。

总结

本文介绍了三种通过JavaScript获取本机IP地址的方法:使用WebRTC API、第三方服务和DNS查询。不同的方法适用于不同的场景,可以根据需求选择合适的方法来获取本机IP地址。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程