Ubuntu Js如何获取本地网卡ip 地址
时间: 2024-09-15 08:05:22 浏览: 10
在Ubuntu上,如果你想要获取本地网卡的IP地址,可以使用Node.js的`os`模块以及`sys`或`child_process`模块来执行系统命令。以下是简单的步骤:
1. 首先,确保你在Node.js环境中运行脚本。你可以通过全局安装`node`命令来检查。
```bash
sudo apt-get install nodejs
```
2. 使用`os`模块中的`networkInterfaces()`函数,它返回一个对象,包含了所有网络接口的信息,包括IPv4和IPv6地址。这里是一个示例代码片段:
```javascript
const os = require('os');
async function getLocalIpAddress() {
const interfaces = await new Promise((resolve) => os.networkInterfaces(resolve));
for (const name of Object.keys(interfaces)) {
for (const interface of interfaces[name]) {
if (interface.family === 'IPv4' && !interface.internal) { // 只获取外网IPv4地址
return interface.address;
}
}
}
return null; // 如果找不到合适的地址,返回null 或者抛出异常
}
getLocalIpAddress().then(ip => console.log(`Local IP address: ${ip}`)).catch(err => console.error(err));
```
3. 执行这个脚本,它会打印出第一个非内部的IPv4地址。如果有多张网卡,并且你想选择特定的一个(比如无线或有线),可以根据网卡名(如`eth0`、`wlan0`等)进行筛选。