Last active 1493582244

A bookmarklet to redirect to a web service running on the lan interface

Steven Smith revised this gist 1493618243. Go to revision

2 files changed, 34 insertions

localport.js(file created)

@@ -0,0 +1,33 @@
1 + // I wanted a bookmarklet to take me to the local instance of Plex running on my desktop, so Chromecast would function correctly
2 + // (if I used localhost it wouldn't send the correct uri)
3 + // For this I had to get the local ethernet interface IP
4 + // I initiate a connection to 0.0.0.0, then use the data on the connection object to get the interface IP used for that connection
5 + // May not work on the most popular web browser
6 + var path = prompt("Enter uri (e.g http://{}:32400/web)");
7 + // var path = "http://{}:32400/web";
8 + var RTCPeerConnection = window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
9 + RTCPeerConnection && function() {
10 + function c(ip) {
11 + ip in b || (window.location.href = path.replace(/{}/g, ip))
12 + }
13 +
14 + function d(a) {
15 + a.split("\r\n").forEach(function(a) {
16 + ~a.indexOf("a=candidate") ? "host" === a.split(" ")[7] && c(a.split(" ")[4]) : ~a.indexOf("c=") && c(a.split(" ")[2])
17 + })
18 + }
19 + var a = new RTCPeerConnection({
20 + iceServers: []
21 + });
22 + a.createDataChannel("", {
23 + reliable: !1
24 + }), a.onicecandidate = function(a) {
25 + a.candidate && d("a=" + a.candidate.candidate)
26 + }, a.createOffer(function(b) {
27 + d(b.sdp), a.setLocalDescription(b)
28 + }, function(a) {
29 + console.warn("offer failed", a)
30 + });
31 + var b = Object.create(null);
32 + b["0.0.0.0"] = !1
33 + }();

z-localport-shortened.js(file created)

@@ -0,0 +1 @@
1 + javascript:var path=prompt("Enter uri (e.g http://{}:32400/web)");var RTCPeerConnection=window.webkitRTCPeerConnection||window.mozRTCPeerConnection;RTCPeerConnection&&function(){function c(ip){ip in b||(window.location.href=path.replace(/{}/g, ip))}function d(a){a.split("\r\n").forEach(function(a){~a.indexOf("a=candidate")?"host"===a.split(" ")[7]&&c(a.split(" ")[4]):~a.indexOf("c=")&&c(a.split(" ")[2])})}var a=new RTCPeerConnection({iceServers:[]});a.createDataChannel("",{reliable:!1}),a.onicecandidate=function(a){a.candidate&&d("a="+a.candidate.candidate)},a.createOffer(function(b){d(b.sdp),a.setLocalDescription(b)},function(a){console.warn("offer failed",a)});var b=Object.create(null);b["0.0.0.0"]=!1}();
Newer Older