-1

Im trying to get ip address from netstat -a using a script on nodejs with regex, but im unable to solve this problem.

Regex seems to be unable to return value from the output file from netstat.

Here is the code:

const { spawn } = require("child_process");
const fs = require("fs");

const netstat = spawn("netstat", ["-n", ">", `D:/iplookup/out.txt`]);


const regex = /^([0-255]{1-3}\.)(3)[0-255]:[0-9]{1-4}*$/g;

const re = new RegExp(regex);

netstat.on("close", () => {
    fs.readFile("D:/iplookup/out.txt", "utf8", (error, data) => {
        if(error) {
            console.log(error);
        }
        var m = [];
        dt = data.replace(/(\r\n|\n|\r)/gm, "");
        console.log(re.test(dt));
        do {
            m.push(dt.matchAll(re));
        } while (dt.match(re));
        console.log(m)
    });

});

Thanks.

Jacs
  • 1,437
  • 4
  • 21
  • 31
  • Try this regexp: `/(\d{1,3}\.){3}\d{1,3}:\d{1,4}/` – Yuriy Yakym Jul 09 '21 at 13:47
  • If you want to be very specific and only allow 0-255 numbers, take a look here how to do it: https://www.regular-expressions.info/numericranges.html. But since you parse netstat output, I do not think it is needed – Yuriy Yakym Jul 09 '21 at 13:49

1 Answers1

-1
^([01][0-9][0-9]|2[0-4][0-9]|25[0-5]).([01][0-9][0-9]|2[0-4][0-9]|25[0-5]).([01][0-9][0-9]|2[0-4][0-9]|25[0-5]).([01][0-9][0-9]|2[0-4][0-9]|25[0-5]):([0-9]|[0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9][0-9][0-9]|[0123456][0-4][0-9][0-9][0-9]|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])
ukro
  • 19
  • 4