Node.JS中快速掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的Web服務(wù)器地址(80)
在 Node.JS 中進(jìn)行端口掃描還是比較方便的,一般會(huì)有廣播和輪詢兩種方式。即使用廣播和掃描,使用廣播發(fā)出的消息有時(shí)會(huì)被路由器屏蔽,所以并不可靠。
使用node.js中的net模塊,可以直接嘗試向目錄主機(jī)的某個(gè)端口進(jìn)行連接,如果能建立連接,則說(shuō)明該地址存在服務(wù)器。
var socket = new Socket() socket.connect(port, host) socket.on('connect', function() { //找到port 和 host 地址 })
所以只要進(jìn)行255次掃描,則可找到同一網(wǎng)段內(nèi)所有的Web服務(wù)器了。完整的示例代碼如下,使用Node.JS掃描的速度極快,幾秒內(nèi)即可完成掃描。
var net = require('net') var Socket = net.Socket //待掃描的開(kāi)始網(wǎng)段,可換成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) }) }
輸出結(jié)果:
Found: 10.0.0.1 Found: 10.0.0.3 Not found 10.0.0.255 ......
總結(jié)
以上所述是小編給大家介紹的Node.JS中快速掃描端口并發(fā)現(xiàn)局域網(wǎng)內(nèi)的Web服務(wù)器地址(80) ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Node.js與Sails ~項(xiàng)目結(jié)構(gòu)與Mvc實(shí)現(xiàn)及日志機(jī)制
Sails是一個(gè)Node.js的中間架構(gòu),很方便的幫助我們搭建web應(yīng)用程序。還有node.js與Sails日志機(jī)制在本文中也講到了,需要的朋友可以一起學(xué)習(xí)下2015-10-10用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox)
這篇文章主要介紹了用純Node.JS彈出Windows系統(tǒng)消息提示框?qū)嵗?MessageBox),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù)的方法
這篇文章主要介紹了手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07nodejs和php實(shí)現(xiàn)圖片訪問(wèn)實(shí)時(shí)處理
這篇文章主要為大家詳細(xì)介紹了nodejs和php分別實(shí)現(xiàn)圖片訪問(wèn)實(shí)時(shí)處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Public?Npm?Registry模塊使用方式實(shí)例
這篇文章主要為大家介紹了Public?Npm?Registry的使用方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11node.js Promise對(duì)象的使用方法實(shí)例分析
這篇文章主要介紹了node.js Promise對(duì)象的使用方法,結(jié)合實(shí)例形式分析了node.js中Promise對(duì)象的功能、定義、調(diào)用方法及相關(guān)使用技巧,需要的朋友可以參考下2019-12-12node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式
這篇文章主要介紹了node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09