如何用js获取ip地址
如何用 JavaScript 获取 IP 地址
直接获取
WebRTC API
async function getIP() { const configuration = { iceServers: [ { urls: ['stun:stun.l.google: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 地址。
上一篇:vue中的watch什么意思
下一篇:vue动态表单是什么意思
相关推荐
-
PHP 应用程序性能优化中 Web 服务器配置的调优
通过调优 web 服务器配置,可以优化 php 应用程序性能,具体方法包括:调整线程池大小,优化并发请求处理;设置 keepalive 超时,平衡延迟和资源消耗;设置连接限制,防止资源耗尽;启用 gz
-
navicat能连接服务器的数据库吗
Navicat 能否连接服务器数据库?答案: 是详细说明:Navicat 是一个数据库管理工具,可以连接到各种数据库服务器,包括:MySQLMariaDBSQL ServerOraclePostgre
-
navicat如何打开关闭的服务器
如何打开关闭的服务器打开关闭的服务器要打开关闭的服务器,请按照以下步骤操作:关闭服务器要关闭服务器,请按照以下步骤操作:详细步骤:打开关闭的服务器关闭服务器
-
C++ 函数常量引用参数传递的注意事项
常量引用参数传递可确保函数内参数不变性,有以下优势:参数不可变性:函数无法修改常量引用参数。提高效率:无需创建参数副本。错误检测:尝试修改常量引用参数会触发编译时错误。C++ 函数常量引用参数传递的注
-
golang函数返回值的注意事项
函数返回值类型须与签名相匹配。函数可返回多个值或不返回值,后者使用 () 表示。return 语句可提前结束函数并返回给定值。多个返回值使用 return 多个值返回。Go 语言函数返回值的注意事项在