#24 chromebook chromecast

Open
opened 5 years ago by unidan · 0 comments
unidan commented 5 years ago

Use traceroute

Can't work, the address we want is behind the router.

Use a web page and xdg-open to get the address from the host

webRTC can tell us the ip.

// Example (using the function below).
getLocalIPs(function(ips) {
    document.body.textContent = 'Local IP addresses:\n ' + ips.join('\n ');
});

function getLocalIPs(callback) {
    var ips = [];

    var RTCPeerConnection = window.RTCPeerConnection ||
        window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

    var pc = new RTCPeerConnection({
        // Don't specify any stun/turn servers, otherwise you will
        // also find your public IP addresses.
        iceServers: []
    });
    // Add a media line, this is needed to activate candidate gathering.
    pc.createDataChannel('');
    
    // onicecandidate is triggered whenever a candidate has been found.
    pc.onicecandidate = function(e) {
        if (!e.candidate) { // Candidate gathering completed.
            pc.close();
            callback(ips);
            return;
        }
        var ip = /^candidate:.+ (\S+) \d+ typ/.exec(e.candidate.candidate)[1];
        if (ips.indexOf(ip) == -1) // avoid duplicate entries (tcp/udp)
            ips.push(ip);
    };
    pc.createOffer(function(sdp) {
        pc.setLocalDescription(sdp);
    }, function onerror() {});
}
# Use traceroute Can't work, the address we want is behind the router. # Use a web page and xdg-open to get the address from the host webRTC can tell us the ip. ``` // Example (using the function below). getLocalIPs(function(ips) { document.body.textContent = 'Local IP addresses:\n ' + ips.join('\n '); }); function getLocalIPs(callback) { var ips = []; var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection; var pc = new RTCPeerConnection({ // Don't specify any stun/turn servers, otherwise you will // also find your public IP addresses. iceServers: [] }); // Add a media line, this is needed to activate candidate gathering. pc.createDataChannel(''); // onicecandidate is triggered whenever a candidate has been found. pc.onicecandidate = function(e) { if (!e.candidate) { // Candidate gathering completed. pc.close(); callback(ips); return; } var ip = /^candidate:.+ (\S+) \d+ typ/.exec(e.candidate.candidate)[1]; if (ips.indexOf(ip) == -1) // avoid duplicate entries (tcp/udp) ips.push(ip); }; pc.createOffer(function(sdp) { pc.setLocalDescription(sdp); }, function onerror() {}); } ```
Sign in to join this conversation.
No Label
No Milestone
No assignee
1 Participants
Loading...
Cancel
Save
There is no content yet.