It only works for Windows OS because it uses windows headers which are not included in linux os.
This code is to get the internal ip address of your pc using C++.
This code is to get the internal ip address of your pc using C++.
Code:
#pragma once
#include <iostream>
#include <string.h>
#include <WinSock2.h>
#define _WINSOCKAPI_
#include <ws2tcpip.h>
#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
using namespace std;
#define DEFAULT_VERSION 1.00
char *get_ip_addr();
int main()
{
printf("~ IP Displayer %4.2f created by ZionHD ~\n", DEFAULT_VERSION);
printf("~ Copyright (c) 2015 Console-Forums ~\n");
printf("\n\n");
WSAData wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
printf("Failed at WSAStartup()\n");
return 1;
}
char *ip = get_ip_addr();
printf("IP Address: %s", ip);
WSACleanup();
return 0;
}
char *get_ip_addr()
{
char ac[256];
if (gethostname(ac, sizeof(ac)) == SOCKET_ERROR) {
return "127.0.0.1";
}
struct hostent *phe = gethostbyname(ac);
if (phe == 0) {
return "127.0.0.1";
}
struct in_addr addr;
memcpy(&addr, phe->h_addr_list[0], sizeof(struct in_addr));
return inet_ntoa(addr);
}