bg:像固定的机器发送消息,需要一个机器的唯一标识
目录
方案
方案:
经查询找到以下几种方案
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地址代码参考(参考的网上大神代码)~
constgetUserIp=onNewIP=>{const MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection
const pc =newMyPeerConnection({iceServers:[]})constnoop=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})/gfunctioniterateIP(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
版权归原作者 暴躁小徐~ 所有, 如有侵权,请联系我们删除。