侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

绕过代理获取访客真实IP

2022-06-22 星期三 / 0 评论 / 0 点赞 / 74 阅读 / 8433 字

绕过代理获取访客真实IPFirefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的。演

.

绕过代理获取访客真实IP

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

演示链接

Default

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

//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);});


.

广告 广告

评论区