Linux下获取本机局域网IP


Linux下获取本机局域网IP

[cpp]

  1. #include <stdio.h>   
  2. #include <stdlib.h>   
  3. #include <string.h>   
  4. #include <arpa/inet.h>   
  5. #include <sys/socket.h>   
  6. #include <sys/ioctl.h>   
  7. #include <net/if.h>   
  8.   
  9. int main()  
  10. {  
  11.     int inet_sock;  
  12.     struct ifreq ifr;  
  13.     char ip[32];  
  14.   
  15.     inet_sock = socket(AF_INET, SOCK_DGRAM, 0);  
  16.     strcpy(ifr.ifr_name, "eth0");  
  17.     ioctl(inet_sock, SIOCGIFADDR, &ifr);  
  18.     strcpy(ip, inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));  
  19.     printf("ip = %s\n", ip);  
  20.     return 0;  
  21. }  
[html]
  1. [root@www.bkjia.com getIP]# make  
  2. gcc    -c -o getIP.o getIP.c  
  3. gcc getIP.o -o main  
  4. [root@www.bkjia.com getIP]# ./main   
  5. ip = 192.168.1.123  
  6. [root@www.bkjia.com getIP]#  

相关内容