IP com C++

Como pegar o ip da máquina com C++

#include <iostream>
#include <cstdlib> 
using namespace std;

int main() {

system("ipconfig"); 
system("ifconfig | grep inet' 'addr:19"); 

}

Tenho esse código, mas como armazenar em uma variável somendo o endereço ipv4?

Eu não tenho certeza se é uma solução que funciona no Windows, mas no Linux, vc pode usar a função popen.

No exemplo abaixo eu usei o comando ip a pois parece que ele substituiu o comando ipconfig no Ubuntu, que é o sistema que estou usando.

#include <stdlib.h>
#include <stdio.h>

int main() {
  char path[1035];

  // Executa o comando 'ip a' e armazena o resultado em output
  FILE *output = popen("ip a", "r");

  if (output == NULL) {
    printf("O comando Falhou\n");
    exit(1);
  }

  /* Lê o output e imprime linha a linha */
  while (fgets(path, sizeof(path) - 1, output) != NULL) {
    printf(">>> %s", path);
  }

  /* close */
  pclose(output);

  return 0;
}

FONTE.

Aqui tem uma demonstração.

A idéia é que vc analise o conteudo de output e tende extrair dele a parte que vc quer.

1 curtida