首页 > 解决方案 > 正则表达式不返回任何值,获取 ip

问题描述

我正在尝试使用带有正则表达式的 nodejs 上的脚本从 netstat -a 获取 IP 地址,但我无法解决这个问题。

正则表达式似乎无法从 netstat 的输出文件中返回值。

这是代码:

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)
    });

});

谢谢。

标签: node.jsregexnetstat

解决方案


^([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])

推荐阅读