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 相关文章推荐
js实现的点击数量加一可操作数据库
May 09 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
Jan 19 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
AngularJs实现分页功能不带省略号的代码
May 30 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
Jul 31 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
Vue + Element UI图片上传控件使用详解
Aug 20 Javascript
Vue按时间段查询数据组件使用详解
Aug 21 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学习资源和链接.
2006/12/05 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
php跨域调用json的例子
2013/11/13 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
2020/04/27 Javascript
python简单实例训练(21~30)
2017/11/15 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python对于requests的封装方法详解
2019/01/03 Python
python 实现单通道转3通道
2019/12/03 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
laravel使用redis队列实例讲解
2021/03/23 PHP
学生励志演讲稿
2014/01/06 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
个人担保书范文
2014/05/20 职场文书
营销与策划专业求职信
2014/06/20 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
小学班主任自我评价
2015/03/11 职场文书
自荐信格式模板
2015/03/27 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python