ローカルコンピュータのホスト名とIPアドレスを取得する方法です。
#include <tchar.h>
#include <stdio.h>
#include <winsock.h>
//---------------------------------------------------------------------------
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsadata;
if (WSAStartup(MAKEWORD(1, 1), &wsadata) != 0) {
puts("error");
return 0;
}
//ホスト名を取得する
char hostname[256];
if (gethostname(hostname, sizeof(hostname)) != 0) {
puts("error");
return 0;
}
puts(hostname);
//ホスト名からIPアドレスを取得する
HOSTENT* hostend = gethostbyname(hostname);
if (hostend == NULL) {
puts("error");
return 0;
}
IN_ADDR inaddr;
memcpy(&inaddr, hostend->h_addr_list[0], 4);
char ip[256];
strcpy(ip, inet_ntoa(inaddr));
puts(ip);
WSACleanup();
return 0;
}