0 votes
773 views
by (21.5k points)

1 Answer

0 votes
by (21.5k points)
selected by
 
Best answer
Create a Coach View with custom html in layout, put the following in the custom html

<span id="ip1"></span>

In Inline Javascript paste the following

/**
 * Get the user IP throught the webkitRTCPeerConnection
 * @param onNewIP {Function} listener function to expose the IP locally
 * @return undefined
 */
function getUserIPPvt(onNewIP) { //  onNewIp - your listener function for new IPs
    //compatibility for firefox and chrome
    var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
    var pc = new myPeerConnection({
        iceServers: []
    }),
    noop = function() {},
    localIPs = {},
    ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
    key;

    function iterateIP(ip) {
        if (!localIPs[ip]) onNewIP(ip);
        localIPs[ip] = true;
    }

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

    // create offer and set local description
    pc.createOffer().then(function(sdp) {
        sdp.sdp.split('\n').forEach(function(line) {
            if (line.indexOf('candidate') < 0) return;
            line.match(ipRegex).forEach(iterateIP);
        });
        
        pc.setLocalDescription(sdp, noop, noop);
    }).catch(function(reason) {
        // An error occurred, so handle the failure to connect
    });

    //listen for candidate events
    pc.onicecandidate = function(ice) {
        if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
        ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
    };
}

In Load Event Handler put the following

getUserIPPvt(function(ip){
    document.getElementById("ip1").innerHTML = 'Got your IP ! : '  + ip ;
});

Related questions

0 votes
1 answer 1.2k views
0 votes
0 answers 1.6k views
0 votes
0 answers 608 views
0 votes
0 answers 421 views
0 votes
0 answers 642 views
0 votes
1 answer 1.0k views
0 votes
1 answer 722 views
0 votes
1 answer 292 views
asked Aug 31, 2019 by Anil Singh (16.3k points)
0 votes
1 answer 1.9k views
0 votes
2 answers 672 views
0 votes
0 answers 1.1k views
0 votes
0 answers 786 views

634 questions

495 answers

97 comments

2.7k users

Join BPM Community Discord Channel

Welcome to BPM Tips Q&A, Community wiki/forum where you can ask questions and receive answers from other IBM BPM experts and members of the community. Users with 2000 points will automatically be promoted to expert level.
Created by Dosvak LLC
Our Youtube Channel
...