获取 IP 地址的方法:直接获取WebRTC API。使用 navigator.mediaDevices.getUserMedia()。通过服务器代理发送 AJAX 或 fetch 请求。
如何用 JavaScript 获取 IP 地址
直接获取
WebRTC API
async function getIP() { const configuration = { iceServers: [ { urls: ['stun:stun.l.google.com:19302'] } ] }; const peerConnection = new RTCPeerConnection(configuration); const iceCandidate = await new Promise((resolve) => { peerConnection.onicecandidate = (e) => { if (e.candidate && e.candidate.type === 'srflx') { resolve(e.candidate.address); } }; }); peerConnection.close(); return iceCandidate;}
登录后复制navigator.mediaDevices.getUserMedia()
async function getIP() { const mediaStream = await navigator.mediaDevices.getUserMedia({ video: false, audio: false }); const peerConnection = new RTCPeerConnection(); const sender = peerConnection.addTrack(mediaStream.getTracks()[0], mediaStream); const iceCandidate = await new Promise((resolve) => { peerConnection.onicecandidate = (e) => { if (e.candidate && e.candidate.type === 'srflx') { resolve(e.candidate.address); } }; }); sender.stop(); peerConnection.close(); return iceCandidate;}
登录后复制
通过服务器代理
使用 AJAX 或 fetch
向服务器发送请求,服务器响应中包含 IP 地址。
async function getIP() { const response = await fetch('/get-ip'); const data = await response.json(); return data.ip;}
登录后复制
注意事项
WebRTC API 和 navigator.mediaDevices.getUserMedia() 只能在安全连接(HTTPS)上使用。服务器代理方法需要后端支持。获取到的 IP 地址可能是本地 IP 地址,而不是外部 IP 地址。
以上就是如何用js获取ip地址的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2673808.html