OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

JavaScript用new Image实现内网服务器端口扫描


分享到


分类 JS学习   关键字 JavaScript   发布 ourjs  1521533116395
注意 转载须保留原文链接,译文链接,作者译者等信息。  
有这样一个场景,要扫描内网的某个服务,只能通过前端来实现。已知服务器的端口号,不知道内网的IP网段。

首先ajax是不能用的,因为网页与目标服务器地址不一致,跨域了。

其次jsonp也不好用,因为现在浏览已经开始限制手动用脚本发jsonp获取获服务器信息了。

最后只能用 Image 来解决了。

Image 有一个 onload 方法,如果目录服务器文件存储则会触发,可以用来扫描设备:


var findArrs = [
    '192.168.0.'
  , '192.168.1.'
  , '10.0.0.'
]
var onloadHandler = function() {
  console.log(this)
  console.log(arguments)
  var src = this.src
  console.log(src)
}
for (var i = 0; i < findArrs.length; i++) {
  for (var j = 0; j < 255; j++) {
    var img = new Image()
    img.onerror = null
    img.onload  = onloadHandler
    img.src = 'http://' + findArrs[i] + j + ':8064/img/onceair.png';
  }
}

缺点:部分浏览器会限制同时下载图片的数量,因此扫描可能会很慢。

社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 用jQuery创建一个可编辑的SELECT下拉控件(HTML/CSS)
  2. 全国211高校数量最多省市排名:北京、上海、南京、武汉、西安最多,附高考难易地图
  3. Node.JS段点续传:Nginx配置文件分段下载功能实现
  4. 如何用Bootstrap免费网站模板和OnceAir云盘搭建个人网站服务器
  5. IE、Chrome、Firefox浏览器默认首页被改成360导航解决办法(删除daohang88.com)跳转
  6. Node.JS高效压缩解压zip文件:将child_process执行结果输入stdout流
  7. OnceAir自动考勤系统,无需手机签到打卡,轻松管理记录员工出勤信息
  8. Node.js 和 JavaScript 的最新版 npm 导致 Linux 系统崩溃,迫使用户重装系统!
  9. Node.JS循环删除非空文件夹及子目录下的所有文件
  10. 如何收集捕获Node中的未处理的错误异常信息?
  11. 用 OnceAir 搭建个人Git/Svn/照片备份服务器,每年电费7块钱

 相关阅读 - JS学习
  1. JavaScript用new Image实现内网服务器端口扫描
  2. 如何收集捕获Node中的未处理的错误异常信息?
  3. Node.JS循环删除非空文件夹及子目录下的所有文件
  4. Node.js 和 JavaScript 的最新版 npm 导致 Linux 系统崩溃,迫使用户重装系统!
  5. 用jQuery创建一个可编辑的SELECT下拉控件(HTML/CSS)
  6. 如何用Bootstrap免费网站模板和OnceAir云盘搭建个人网站服务器
  7. Node.JS高效压缩解压zip文件:将child_process执行结果输入stdout流
  8. Node.JS段点续传:Nginx配置文件分段下载功能实现
  9. Node.JS如何查看本地MAC/IP地址、计算cpu使用率和内存容量
  10. JavaScript数组从头开始的位置插入新元素或删除第一个元素

 关键字 - JavaScript
  1. JavaScript如何快速高性能清空删除Array数组中的所有元素,并保持引用
  2. JavaScript无引用复制一个Array数组的每一个元素到另一个数组
  3. JavaScript使用类似break机制中断forEach循环
  4. 用JavaScript实现node.js中的path.join方法
  5. 用jQuery将JavaScript对象转换为querystring查询字符串
  6. 用JavaScript往select元素中添加new option下拉选项
  7. bootstrap-datetimepicker时间日期范围选取组件使用说明及简单教程
  8. 少年,不要滥用箭头函数啊:JS中lambda表达式的优缺点和使用场景
  9. 用JavaScript获取当月第一天和最后一天
  10. 用JavaScript测试图像上两点之间的距离

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号