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的开源工具PACKER2.0.2
Nov 04 Javascript
js 内存释放问题
Apr 25 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
AngularJS入门教程之迭代器过滤详解
Aug 18 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 jQuery
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
Aug 31 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
swiper Scrollbar滚动条组件详解
Sep 08 Javascript
JS实现页面数据懒加载
Feb 13 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 form 表单传参明细研究
2009/07/17 PHP
PHP 强制下载文件代码
2010/10/24 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
numpy中矩阵合并的实例
2018/06/15 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
电话销售经理岗位职责
2013/12/07 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
倡议书范文
2014/04/16 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
卡特教练观后感
2015/06/08 职场文书
人代会简报
2015/07/21 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python
三星 3nm 芯片将于第二季度开始量产
2022/04/29 数码科技