JavaScript获取本机IP地址的三种常用方式

作者:拾光

时间:2026-10-31

浏览:555

本文介绍JavaScript获取客户端IP地址的三种常用方法:通过第三方API(如ipify)直接请求、利用WebRTC技术获取(需用户授权且更可靠),以及通过DNS查询方式。文章提供了各方法的代码示例与注意事项,帮助开发者根据实际需求选择合适方案。

文章目录

在前端开发中,获取客户端的IP地址是一个常见的需求。JavaScript提供了多种技术手段来实现这一目标,下面将详细介绍三种获取本机IP地址的常用方法。

方法一:调用第三方API

获取客户端IP地址最简单的方式是利用第三方提供的API服务。例如,可以使用ipify.org等免费接口来获取IP信息。以下代码展示了如何通过JavaScript发起请求并获取本机IP地址。

<code>
fetch('https://api.ipify.org?format=json')
.then(response => response.json())
.then(json => console.log(json.ip));
</code>

方法二:利用WebRTC(需用户授权)

WebRTC是浏览器原生支持的JavaScript API,主要用于浏览器间直接传输数据,但也可用于获取客户端IP地址。相比第三方API,该方法通常具有更快的响应速度和更高的可靠性。以下是使用WebRTC获取IP地址的代码示例。

<code>
var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
var pc = new myPeerConnection({iceServers:[]}), noop = function(){}; 
var localIPs = {};
pc.createDataChannel("");
pc.createOffer().then(function (sdp) {
sdp.sdp.split('\n').forEach(function (line) { 
if (line.indexOf('candidate') < 0) return;
line.match(ipRegex).forEach(function (ip) {
localIPs[ip] = true;
});
});
pc.setLocalDescription(sdp, noop, noop);
}).catch(function (reason) {
console.log(reason);
});
var ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
var ips = Object.keys(localIPs);
console.log(ips[0]);
</code>

方法三:通过DNS查询

DNS系统负责将主机名解析为IP地址。在JavaScript中,也可以通过特定的DNS查询方式来获取本机IP地址。以下代码演示了如何使用JavaScript执行DNS查询以获取IP信息。

<code>
var request = new XMLHttpRequest();
request.open('GET', 'https://api.ipify.org?format=json', true);
request.onload = function () {
if (request.status >= 200 && request.status < 400) {
var data = JSON.parse(request.responseText);
console.log(data.ip);
}
};
request.onerror = function () {
console.error('Error occurred during the network request');
};
request.send();
</code>

总结

以上就是关于JavaScript获取本机IP地址的三种常用方式的详细介绍。如需了解更多JS获取IP地址的相关内容,建议搜索本站历史文章或继续浏览后续相关文章,感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章