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实现二分查找法实现代码
Nov 12 Javascript
风吟的小型JavaScirpt库 (FY.JS).
Mar 09 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
BOM系列第二篇之定时器requestAnimationFrame
Aug 17 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
基于对象合并功能的实现示例
Oct 10 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
优雅地使用loading(推荐)
Apr 20 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单元测试phpunit入门实例教程
2017/11/17 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
JavaScript 数组详解
2013/10/10 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
Python单链表的简单实现方法
2014/09/23 Python
python实现可逆简单的加密算法
2019/03/22 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
django中forms组件的使用与注意
2019/07/08 Python
详解python中index()、find()方法
2019/08/29 Python
python中栈的原理及实现方法示例
2019/11/27 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
高二美术教学反思
2014/01/14 职场文书
高一物理教学反思
2014/01/24 职场文书
九年级历史教学反思
2014/01/27 职场文书
新学期决心书
2014/03/11 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
话题作文之成长
2019/12/09 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL