@codavidgarcia/devtoolbox
Version:
Local development toolkit - cohesive CLI tools for developers: kill ports, check environment, decode JWTs, manage network, and more
45 lines (36 loc) ⢠1.38 kB
JavaScript
const { exec } = require('child_process');
const { promisify } = require('util');
const logger = require('../utils/logger');
const chalk = require('chalk');
const execAsync = promisify(exec);
async function showIP() {
console.log(chalk.bold.cyan('\nš IP Address Information\n'));
// Get local IP
try {
const platform = process.platform;
let command;
if (platform === 'darwin' || platform === 'linux') {
command = "ifconfig | grep 'inet ' | grep -v 127.0.0.1 | awk '{print $2}' | head -1";
} else {
command = "ipconfig | findstr IPv4";
}
const { stdout } = await execAsync(command);
const localIP = stdout.trim().split('\n')[0];
console.log(chalk.bold('Local IP:'));
console.log(` ${localIP || 'Not found'}`);
} catch (error) {
console.log(chalk.bold('Local IP:'));
console.log(' Unable to determine');
}
// Get public IP
try {
const { stdout } = await execAsync('curl -s https://api.ipify.org');
console.log(chalk.bold('\nPublic IP:'));
console.log(` ${stdout.trim()}`);
logger.success('\nIP information retrieved');
} catch (error) {
console.log(chalk.bold('\nPublic IP:'));
console.log(' Unable to determine (check internet connection)');
}
}
module.exports = showIP;