Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> Linux c 獲取本機IP

Linux c 獲取本機IP

日期:2017/1/20 17:43:22      編輯: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 © Windows教程網 All Rights Reserved