我需要Javascript代码来捕获iPad设备的本地系统的IP地址

jhkqcmku  于 2022-11-27  发布在  Java
关注(0)|答案(2)|浏览(212)

我无法通过JS代码捕获iPad设备的IP地址。这在Windows系统中工作正常
下面是代码:

var findIP = new Promise(r => {
  var w = window,
    a = new(w.RTCPeerConnection || w.mozRTCPeerConnection || w.webkitRTCPeerConnection)({
      iceServers: []
    }),
    b = () => {};
  a.createDataChannel("");
  a.createOffer(c => a.setLocalDescription(c, b, b), b);
  a.onicecandidate = c => {
    try {
      c.candidate.candidate.match(/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g).forEach(r)
    } catch (e) {}
  }
})
findIP.then(function(ip) {
  console.log(ip);
})
zu0ti5jz

zu0ti5jz1#

在最近的IOS版本中,Apple故意模糊本地IP地址,目的是使设备难以指纹识别。这是非常不幸的,因为如果知道IP地址,我就可以在LAN上查找对等设备了。
IOS返回以下类型的操作系统的地址:9befcb75-3f5e-48f5-9201-744fc7ba406c.local
这可能是一些无用的随机数。
此外,也不需要解析候选字段,因为候选记录中有一个名为“address”的属性,该属性通常将IPv4地址作为字符串。
这段代码可以在Mac桌面上运行,Android也可以,但在iPad/iOS设备上却毫无用处,因为这些设备数量相当多。

qcbq4gxm

qcbq4gxm2#

下面是一个可以用来获取IP地址javascript函数:

$.getJSON('http://www.geoplugin.net/json.gp?jsoncallback=?', function (data) {
    console.log('ipAddress:', data.geoplugin_request);
});

相关问题