欢迎光临散文网 会员登陆 & 注册

记录用H5的webrtc搜索ssh端口找到树莓派ip地址

2020-05-24 13:54 作者:学的很杂的一个人  | 我要投稿

最近学用树莓派,要连接ssh,发现找树莓派的IP好麻烦,想有一种比较方便不用下软件,还跨平台找地址的方法,自己以前也学过点WEBRTC,了解到可以对IP段扫描,所以上网查了一下,找到了这个文章,《在Chrome中使用WebRTC ICE服务进行端口扫描》:https://zhuanlan.zhihu.com/p/98971461

上面有实例可以直接使用

我直接抄了说明内的代码修改方便理解

使用:新建一个文本把以下代码粘贴进去,保存修改为.html的后缀名然后用chrome浏览器运行即可。

也可以打开一个web在线编辑器:http://app.ruizhen.net/WebEditor/ ,粘贴以下代码:

<html>

  <body>

  <div id="hosts"></div>

<script>

var brute_array = [];

for (i = 0; i < 256; i++) {

  brute_address = "turn:192.168.1." + i + ":22?transport=tcp";

  brute_array.push({

    urls: brute_address,

    credential: "lobster",

    username: "albino"

  });

}

var rtc_brute = new RTCPeerConnection({

  iceServers: brute_array,

  iceCandidatePoolSize: 0

});

rtc_brute.createDataChannel('', {

  reliable: false

});

 

rtc_brute.onicecandidateerror = function(e) {

  if (e.url == null) {

    return;

  }

  //console.log(e.port)

  url_split = e.url.split(":");

  host_div = document.createElement('div');

  host_div.id = url_split[1];

  if(e.port){var result = "open";}else{var result = "close";}

  host_div.innerHTML = url_split[1] + ": 22 port is  " + result;

  document.getElementById('hosts').appendChild(host_div);

}

 // trigger the gathering of ICE candidates

rtc_brute.createOffer(function(offerDesc) {

  rtc_brute.setLocalDescription(offerDesc);

}, function(e) {

  console.log("Create offer failed callback.");

});

 </script>

     </body>

</html>

这个代码只能在Chrome上才能生效

Firefox会产生以下错误:

过程视频在我的个人空间了可以找到。

记录用H5的webrtc搜索ssh端口找到树莓派ip地址的评论 (共 条)

分享到微博请遵守国家法律