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 相关文章推荐
?牟┛途W扣了一??效果出?? target=
May 27 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
JS.getTextContent(element,preformatted)使用介绍
Sep 21 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Oct 05 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
Nov 29 Javascript
JS实现HTML标签转义及反转义
Apr 14 Javascript
纯js的右下角弹窗实例
Mar 12 Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 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学习之数组值的操作
2011/04/17 PHP
php 短链接算法收集与分析
2011/12/30 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
PHP实现简易blog的制作
2016/10/24 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
分分钟入门python语言
2018/03/20 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Django框架请求生命周期实现原理
2020/11/13 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
父亲生日宴会答谢词
2014/01/10 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
运动会广播稿30字
2014/01/21 职场文书
学校节能减排方案
2014/06/13 职场文书
个性发展自我评价2015
2015/03/09 职场文书
企业党建工作总结2015
2015/05/26 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers
Fluentd搭建日志收集服务
2022/09/23 Servers