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 12 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
微信小程序云开发实现云数据库读写权限
May 17 Javascript
vue之组件内监控$store中定义变量的变化详解
Nov 08 Javascript
使用Karma做vue组件单元测试的实现
Jan 16 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 04 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 翻页 实例代码
2009/08/07 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
php+highchats生成动态统计图
2014/05/21 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
jQuery中extend函数简单用法示例
2017/10/11 jQuery
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
详解package.json版本号规则
2019/08/01 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python常见字典内建函数用法示例
2018/05/14 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
文秘专业应届生求职信范文
2013/11/14 职场文书
赔偿协议书范本
2014/09/12 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
表扬稿格式范文
2015/01/16 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
python中opencv实现图片文本倾斜校正
2021/06/11 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python