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 日期处理之时区问题
Oct 08 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
Jul 09 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
Oct 18 Javascript
js document.write()使用介绍
Feb 21 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
SuperSlide标签切换、焦点图多种组合插件
Mar 14 Javascript
javascript实现行拖动的方法
May 27 Javascript
Jquery实现顶部弹出框特效
Aug 08 Javascript
JS实现支持多选的遍历下拉列表代码
Aug 20 Javascript
jquery pagination分页插件使用详解(后台struts2)
Jan 22 Javascript
vue如何集成raphael.js中国地图的方法示例
Aug 15 Javascript
javascript使用正则实现去掉字符串前面的所有0
Jul 23 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/08/28 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
Python Web服务器Tornado使用小结
2014/05/06 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
三星英国官网:Samsung英国
2018/09/25 全球购物
个人简历自我评价
2014/02/02 职场文书
致400米运动员广播稿
2014/02/07 职场文书
对标管理实施方案
2014/03/12 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA