Linux c 获取本机IP

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  Linux c 获取本机IP

  #include <stdio.h>

  #include <sys/types.h>

  #include <sys/socket.h>

  #include <sys/ioctl.h>

  #include <netinet/in.h>

  #include <net/if.h>

  #include <net/if_arp.h>

  #include <arpa/inet.h>

  #include <errno.h>

  #define ETH_NAME”eth0″

  int main()

  {

  int sock;

  struct sockaddr_in sin;

  struct ifreq ifr;

  sock = socket(AF_INET, SOCK_DGRAM, 0);

  if (sock == -1)

  {

  perror(”socket”);

  return -1;

  }

  strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);

  ifr.ifr_name[IFNAMSIZ – 1] = 0;

  if (ioctl(sock, SIOCGIFADDR, &ifr) < 0)

  {

  perror(”ioctl”);

  return -1;

  }

  memcpy(&sin, &ifr.ifr_addr, sizeof(sin));

  printf(”eth0: %s\n”, inet_ntoa(sin.sin_addr));

  return 0;

  }

也会有想更换的念头。旅行,正好提供了这样一个机会,

Linux c 获取本机IP

相关文章:

你感兴趣的文章:

标签云: