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 相关文章推荐
判断iframe里的页面是否加载完成
Jun 06 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
Bootstrap开发实战之响应式轮播图
Jun 02 Javascript
jQuery文件上传控件 Uploadify 详解
Jun 20 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
Jul 01 Javascript
使用vue.js实现联动效果的示例代码
Jan 10 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
Angularjs中ng-repeat的简单实例
Aug 25 Javascript
vue用addRoutes实现动态路由的示例
Sep 15 Javascript
js判断传入时间和当前时间大小实例(超简单)
Jan 11 Javascript
vuex实现数据状态持久化
Nov 11 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php旋转图片90度的方法
2013/11/07 PHP
PHP中文编码小技巧
2014/12/25 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
PHP7 windows支持
2021/03/09 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
vue项目中使用Svg的方法
2018/10/24 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
Python实现统计代码行的方法分析
2017/07/12 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
pandas中的series数据类型详解
2019/07/06 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
Python实现随机爬山算法
2021/01/29 Python
通息工程毕业生自荐信
2013/10/16 职场文书
单位提档介绍信
2014/01/17 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
班主任高考寄语
2015/02/26 职场文书
工资证明范本
2015/06/12 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript