首页 > 解决方案 > TypeScript 中的 MAC 地址

问题描述

我有一个函数可以循环遍历路由器上的可用 IP 地址并返回具有已定义端口打开的那些(将它们放在一个数组中)。有没有办法我也可以获得返回的ips的mac地址?

我在 StackOverflow 上从这里获得了循环功能并进行了一些修改。就是这个:

var net = require('net'), Socket = net.Socket;

var checkPort = function(port, host, callback) {
    var socket = new Socket(), status = null;

    // Socket connection established, port is open
    socket.on('connect', function() {status = 'open';socket.end();list.push(host);});
    socket.setTimeout(1500);// If no response, assume port is not listening
    socket.on('timeout', function() {status = 'closed';socket.destroy();});
    socket.on('error', function(exception) {status = 'closed';});
    socket.on('close', function(exception) {callback(null, status,host,port);});
    socket.connect(port, host);
}

var LAN = '192.168.0'; //Local area network to scan
var POI = 80; //Port of interest

var hostList = [];

//Scan over a range of IP addresses and execute a function each time the port is shown to be open.
for(var i=1; i <=255; i++){
    
    checkPort(POI, LAN+'.'+i, function(error, status, host, port){
        if(status == "open"){
            console.log("Reader found: ", host, port, status); 
        }      
    });     
}
setTimeout(() => {
    console.log(hostList)
}, 1000);

标签: typescriptsocketsip-addressmac-address

解决方案


推荐阅读