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实例教程(19) 使用HoTMetal(3)
Dec 23 Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
Dec 02 Javascript
JavaScript日期时间格式化函数分享
May 05 Javascript
javascript转换日期字符串为Date日期对象的方法
Feb 13 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
Aug 01 Javascript
js判断iframe中元素是否存在的实现代码
Dec 24 Javascript
详解express使用vue-router的history踩坑
Jun 05 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 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
咖啡的种类和口感
2021/03/03 新手入门
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
python中map()与zip()操作方法
2016/02/27 Python
Django的信号机制详解
2017/05/05 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
python实现超级马里奥
2020/03/18 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
易程科技软件测试笔试
2013/03/24 面试题
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
学校介绍信范文
2014/01/14 职场文书
给面试官的感谢信
2014/02/01 职场文书
八项规定整改措施
2014/02/12 职场文书
《王二小》教学反思
2014/02/27 职场文书
服务之星事迹材料
2014/05/03 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
活动宣传稿范文
2015/07/23 职场文书
生产设备维护保养制度
2015/08/06 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL