Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)


Posted in Javascript onSeptember 18, 2017

在 Node.JS 中进行端口扫描还是比较方便的,一般会有广播和轮询两种方式。即使用广播和扫描,使用广播发出的消息有时会被路由器屏蔽,所以并不可靠。

使用node.js中的net模块,可以直接尝试向目录主机的某个端口进行连接,如果能建立连接,则说明该地址存在服务器。

var socket = new Socket()
socket.connect(port, host)
socket.on('connect', function() {
 //找到port 和 host 地址
})

所以只要进行255次扫描,则可找到同一网段内所有的Web服务器了。完整的示例代码如下,使用Node.JS扫描的速度极快,几秒内即可完成扫描。

var net   = require('net')
var Socket = net.Socket
//待扫描的开始网段,可换成192.168.0
var ip   = '10.0.0'
var port  = 80
var scan = function(host, cb) {
 var socket = new Socket()
 var status = null
 socket.setTimeout(1500)
 socket.on('connect', function() {
  socket.end()
  cb && cb(null, host)
 })
 socket.on('timeout', function() {
  socket.destroy()
  cb && cb(new Error('timeout'), host)
 })
 socket.on('error', function(err) {
  cb && cb(err, host)
 })
 socket.on('close', function(err) {
 })
 socket.connect(port, host)
}
for(var i = 1; i <= 255; i++ ) {
 scan(ip+'.'+i, function(err, host) {
  if (err) {
   console.log('Not found', host)
   return
  }
  console.log("Found: ", host)
 })
}

输出结果:

Found: 10.0.0.1
Found: 10.0.0.3
Not found 10.0.0.255
......

总结

以上所述是小编给大家介绍的Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript实现动态CSS换肤技术的脚本
Jun 29 Javascript
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
JQuery优缺点分析说明
Apr 10 Javascript
jquery 笔记 事件
Nov 02 Javascript
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
JavaScript中this的使用详解
Nov 08 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
Aug 05 Javascript
node.js实现快速截图
Aug 27 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 #Javascript
Windows下Node.js安装及环境配置方法
Sep 18 #Javascript
jQuery选择器之子元素选择器详解
Sep 18 #jQuery
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 #Javascript
js实现可以点击收缩或张开的悬浮窗
Sep 18 #Javascript
javascript流程控制语句集合
Sep 18 #Javascript
20170918 前端开发周报之JS前端开发必看
Sep 18 #Javascript
You might like
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python发送email的3种方法
2015/04/28 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
详解python 爬取12306验证码
2019/05/10 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
一套中级Java程序员笔试题
2015/01/14 面试题
自荐书封面下载
2013/11/29 职场文书
《童年》教学反思
2014/02/18 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
小学教师读书笔记
2015/07/01 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js