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 相关文章推荐
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
关于javascript function对象那些迷惑分析
Oct 24 Javascript
一个简单的jquery进度条示例
Apr 28 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
浅析JavaScript事件和方法
Feb 28 Javascript
DOM 高级编程
May 06 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
前端构建工具之gulp的语法教程
Jun 12 Javascript
VUE2.0中Jsonp的使用方法
May 22 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 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
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP 断点续传实例详解
2017/11/11 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
jQuery 入门讲解1
2009/04/15 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
详解用python写一个抽奖程序
2019/05/10 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
二年级小学生评语
2014/04/21 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
干部理论学习心得体会
2016/01/21 职场文书
Python入门学习之类的相关知识总结
2021/05/25 Python
Python中的tkinter库简单案例详解
2022/01/22 Python
MySQL数据管理操作示例讲解
2022/12/24 MySQL