歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux c 獲取本機IP

Linux c 獲取本機IP

日期:2017/3/3 17:01:50   编辑:關於Linux

 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;

  }

Copyright © Linux教程網 All Rights Reserved