2014-06-20 30 views
1

我已經找到了使用Node.js獲取網絡地址的方法(使用require('os').networkInterfaces())。Node.js:知道我在哪個子網?

但有人知道如何找到哪個子網(/24, /16, /8 ...)我在嗎?

該項目涉及使用掃描;-) evilscan

我使用的是OS X

感謝

回答

0

您可以隨時從您的節點腳本執行的ifconfig,然後解析輸出和我自己的子網爲您感興趣的網絡接口提取子網參數。

0

您需要執行CIDR計算,可以使用netmask等模塊進行計算。

var subnet = require('subnet').Netmask, 
     ifaces = require('os').networkInterfaces(); 

ifaces.forEach(function(iface) { 
    console.log(new netmask(iface.address+'/'+iface.netmask)); 
}); 

或者你可以使用libnmap.discover()方法來檢測和自動掃描每個接口(S)的子網中的設備。

var nmap = require('libnmap'); 

nmap.discover(function(err, report) { 
    if (err) throw new Error(err); 

    for (var item in report) { 
    console.log(JSON.stringify(report[item])); 
    } 
} 
+0

謝謝@moritz代碼編輯,手機不是最好的吧 –

+0

啊!這就是...對不起,我應該猜到了。是的,在手機上很奇怪。 – Moritz

相關問題