Skip to content

Instantly share code, notes, and snippets.

@Horaddrim
Created February 27, 2019 13:42
Show Gist options
  • Save Horaddrim/432ef369bb769d90b3fc265ce6853baa to your computer and use it in GitHub Desktop.
Save Horaddrim/432ef369bb769d90b3fc265ce6853baa to your computer and use it in GitHub Desktop.
/* Aqui eu dou o require do modulo OS, que contém
todas as informações disponiveis sobre o sistema operacional
que seu código Js ta rodando, desde distribuição (se é Windows, Mac* ou Linux),
arquitetura do processador (se é 32, 64 ou 86 bits) e coisas assim.
E uma das informações que ele tem é das interfaces de rede do PC, que não são nada
além de uma listagem com as capacidades da tua placa de rede :D
Geralmente, num notebook comum você vai ter 3:
lo: Que é uma interface de loopback (por isso o nome Lo :D) que serve para comunicação interna dos teus serviços
Ou seja, seu "localhost:3000" pra testar a nossa API só funcionou por conta dela :D
eth0: A mais daora kkkkk, porque ela é a interface padrão de comunicação com cabos, então se você usa um cabo de rede
pra se conectar na net, é aqui que seu IP deve aparecer mesmo.
O nome significa Ethernet e como é a primeira o 0 (lembra que em arrays e coisas assim começam com 0 né?)
wlan0: Eee a mais utilizada hoje em dia de longe, que é a Wireless LAN, sendo a primeira, 0 também, que é onde fica seu
IP na sua rede WIFI! Eee é ela que vamos usar, porque geralmente usamos redes WIFI :D
* => Caso você tente rodar em um Mac, vai aparecer Darwin, que é o nome do Kernel dele, então não assusta kkkkk
*/
const os = require("os");
// Aqui a gente pede pro módulo OS as interfaces de rede
const interfaces = os.networkInterfaces();
// E logo em seguida eu já "seleciono" a interface wlan0
// Recomendo você rodar isso aqui:
// console.log(JSON.stringify(interfaces, null, 2));
// pra ver a estrutura toda e todas as informações
// que você consegue com esse método! :D
const wlan0 = interfaces['wlan0'];
// Eeee aqui eu só dou uns print bonitinho no seu IPv4 e o IPv6
// Distinguindo a familia.
// Lembrando que não foi intuição, eu dei o console.log ali em cima
// pra ver a estrutura e vi onde estavam as informações
console.log(`Seu ${wlan0[0].family} é: ${wlan0[0].address}`);
console.log(`Seu ${wlan0[1].family} é: ${wlan0[1].address}`);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment