新聞中心
這里有您想知道的互聯網營銷解決方案
Node.JS中如何快速掃描端口并發(fā)現局域網內的Web服務器地址-創(chuàng)新互聯
這篇文章將為大家詳細講解有關Node.JS中如何快速掃描端口并發(fā)現局域網內的Web服務器地址,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
在 Node.JS 中進行端口掃描還是比較方便的,一般會有廣播和輪詢兩種方式。即使用廣播和掃描,使用廣播發(fā)出的消息有時會被路由器屏蔽,所以并不可靠。
使用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中如何快速掃描端口并發(fā)現局域網內的Web服務器地址就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章題目:Node.JS中如何快速掃描端口并發(fā)現局域網內的Web服務器地址-創(chuàng)新互聯
網頁URL:http://www.ef60e0e.cn/article/cojdip.html