A-4 gethostbyaddr()の利用例


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>

#define ADDRESS "127.0.0.1"

int
main()
{
  struct hostent *host;
  struct in_addr addr;

  /* 文字列で表現されるIPアドレスを32ビットのバイナリ値に変換 */
  addr.s_addr = inet_addr(ADDRESS);

  /* IPアドレスからホスト名を取得 */
  host = gethostbyaddr((const char *)&addr.s_addr,
                        sizeof(addr.s_addr), AF_INET);
  if (host == NULL) {
    /* gethostbyaddrのエラーはperrorではないので注意 */
    herror("gethostbyaddr");
    return 1;
  }

  /* 結果を表示 */
  printf("%s\n", host->h_name);

  return 0;
}

拙著「Linuxネットワークプログラミング」の紹介

IPv6基礎検定

YouTubeチャンネルやってます!