前端获取本机ipv4地址,谷歌 火狐 IE通用。

暴躁小徐~ 2024-08-08 09:33:11 阅读 94

bg:像固定的机器发送消息,需要一个机器的唯一标识

目录

方案WebRTC是什么泄露私网IPv4地址可能会导致的风险ipify.org 是什么? 会不会存在随意获取泄露用户信息问题?为什么使用WebRTC是相对最为安全的方式内网的本机IPV4地址泄露的风险 (低)

前端使用js获取本机ipv4地址代码参考(参考的网上大神代码)~浏览器配置(要配置浏览器才能获取到ip哦~)ps:自行考量是否存在风险

方案

方案:

经查询找到以下几种方案

1、通过第三方api 列:ipify.org 等

2、通过JavaScript中的WebRTC技术。

3、获取 IP 需要借助 os 模块,需要先安装依赖等

WebRTC是什么

WebRTC(Web实时通信)是一种支持浏览器之间实时音频、视频和数据传输的开放标准。它通过浏览器内置的JavaScript API提供了实时通信的能力,无需任何插件或第三方软件。WebRTC可以用于构建各种应用程序,例如视频会议、实时游戏、文件共享和即时通讯等。它基于标准的网络协议,如WebSocket和ICE(Interactive Connectivity Establishment),并使用了一些编解码器和传输协议,如VP8、H.264、Opus和SRTP等。WebRTC已经得到了主流浏览器的广泛支持,包括Chrome、Firefox、Safari和Edge等。

泄露私网IPv4地址可能会导致的风险

泄露私网IPv4地址可能会导致以下风险:

网络攻击:攻击者可以使用您的私网地址来尝试入侵您的网络或设备。他们可能会利用此信息进行端口扫描、暴力破解或其他恶意活动。

数据泄露:如果您的私网地址泄露,攻击者可能能够追踪您的在线活动、收集您的敏感信息或窃取您的数据。

身份识别:通过私网地址,攻击者可能能够确定您所在的地理位置和网络服务提供商,进而识别您的身份或跟踪您的在线行为。

隐私问题:泄露私网地址可能违反您的隐私权,特别是当该信息被用于追踪、监视或滥用您的个人信息时。

因此,保护私网IPv4地址的安全性非常重要。确保您的网络设备和系统有适当的安全设置,并避免将私网地址暴露在公共网络或不受信任的平台上。另外,定期更新设备的固件和软件,使用防火墙和安全软件等措施也能提高安全性。

ipify.org 是什么? 会不会存在随意获取泄露用户信息问题?

ipify.org 是一个提供公共 IP 地址查询服务的网站,它可以帮助用户获取他们的公共 IPv4 或 IPv6

地址。根据该网站的声明,它不会记录用户的 IP 地址或其他个人信息

然而,需要注意的是,使用任何第三方服务获取 IP 地址都存在一定的隐私风险。虽然 ipify.org 声称不记录用户的 IP

地址,但我们无法完全确定其是否真的遵守了承诺,或者是否存在潜在的安全漏洞可能被攻击者利用。

因此,如果您担心隐私和数据保护问题,最好使用浏览器的内置 API 或者其他安全可靠的方法来获取 IP

地址。或者,在服务器端使用安全的脚本来获取 IP 地址,然后将结果传输给前端。

总之,使用任何第三方服务都需要谨慎,并对您的个人信息保持警惕。确保您仔细阅读并理解该服务的隐私政策和使用条款,以便做出明智的决策。

ps:网上看到有大神说该网站服务器是洛杉矶,可能存在收集用户信息等风险 我直接就不使用了,而且我用这个api获取到的是公网ip不是本机ipv4

为什么使用WebRTC是相对最为安全的方式

使用浏览器内置的 API 获取 IP 地址通常是较为安全的方式。浏览器的 API

通常受到浏览器制造商的严格控制和审查,以确保其安全性和隐私性。

其中一个常用的 API 是 WebRTC(Web实时通信)中的 RTCIceCandidate 接口,它可以用于获取本机的 IPv4

地址。使用该 API 可以直接从浏览器中获取 IP 地址,而无需依赖第三方服务。

然而,需要注意的是,即使使用浏览器内置的 API,仍然需要遵守相关的隐私法规和数据保护政策。在获取用户的 IP

地址时,您应该明确告知用户并得到其同意。此外,确保您在使用 IP 地址时采取适当的安全措施,以防止数据泄露或滥用。

总之,使用浏览器内置的 API 获取 IP 地址通常是较为安全的选择,但仍然需要遵循隐私和数据保护的最佳实践。

内网的本机IPV4地址泄露的风险 (低)

内网本机的IPv4地址通常被视为局域网内部的私有地址,无法直接从公共网络中访问。因此,仅仅泄露内网本机的IPv4地址本身并不会带来太大的风险。然而,泄露内网本机的IPv4地址可能会增加一些潜在的安全风险,例如:

网络扫描和攻击:恶意用户可以使用你的IPv4地址进行网络扫描,尝试发现和攻击你的网络设备。社会工程攻击:攻击者可以使用你的IPv4地址伪装成你的身份,进行钓鱼或其他形式的社会工程攻击,试图获取敏感信息。收集目标信息:攻击者可以将你的IPv4地址添加到目标列表中,并尝试通过其他手段获取更多关于你的网络环境和系统配置的信息。

为了减少这些潜在的风险,你可以采取以下措施:

配置防火墙:确保你的网络中有有效的防火墙,限制对内网的访问。更新设备和软件:及时更新你的设备和软件,以修复已知的安全漏洞。使用网络地址转换(NAT):通过使用NAT,将内网中的设备隐藏在公共网络后面,增加攻击者对你的网络的访问难度。保护个人信息:避免在公开渠道上泄露个人敏感信息,例如社交媒体、论坛等。

总的来说,虽然仅仅泄露内网本机的IPv4地址本身风险相对较低,但仍建议采取一些安全措施来保护你的网络和个人信息。

前端使用js获取本机ipv4地址代码参考(参考的网上大神代码)~

<code>const getUserIp = onNewIP => {

const MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection

const pc = new MyPeerConnection({ iceServers: [] })

const noop = function() { }

const localIPs = { }

const ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g

function iterateIP(ip) {

if (!localIPs[ip]) onNewIP(ip)

localIPs[ip] = true

}

pc.createDataChannel('')

pc.createOffer().then(sdp => {

sdp.sdp.split('\n').forEach(line => {

if (line.indexOf('candidate') < 0) return

line.match(ipRegex).forEach(iterateIP)

})

pc.setLocalDescription(sdp, noop, noop)

}).catch(reason => { console.log(reason)

})

pc.onicecandidate = function(ice) {

if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return

ice.candidate.candidate.match(ipRegex).forEach(iterateIP)

}

}

getUserIp(ip => {

console.log(ip,'本机ip')

sessionStorage.setItem('ip', ip)

})

浏览器配置(要配置浏览器才能获取到ip哦~)ps:自行考量是否存在风险

以下是代码测试时使用的浏览器版本 供参考

注意:谷歌浏览器86左右的版本 不好使,要升级版本在使用~

谷歌 117.0.5938.92(正式版本)

浏览器输入chrome://flags/#enable-webrtc-hide-local-ips-with-mdns 把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

IE 119.0.2151.93 (正式版本)

在 edge浏览器地址栏中输入:edge://flags/

搜索 #enable-webrtc-hide-local-ips-with-mdns 该配置 并将属性改为 disabled

火狐 116.0.3

搜索about:config

将media.peerconnection.ice.obfuscate_host_addresses置为false



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。