Linux编程获取本地IP

Posted 路之遥_其漫漫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux编程获取本地IP相关的知识,希望对你有一定的参考价值。

 1 #include <stdio.h>      
 2 #include <sys/types.h>
 3 #include <ifaddrs.h>
 4 #include <netinet/in.h> 
 5 #include <string.h> 
 6 #include <stdlib.h>
 7 #include <arpa/inet.h>
 8 
 9 
10 //获取本地IP地址
11 char *getIP()
12 {
13      int sock_get_ip;  
14     char ipaddr[50];  
15   
16     struct   sockaddr_in *sin;  
17     struct   ifreq ifr_ip;     
18   
19     if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)  
20     {  
21          printf("socket create failse...GetLocalIp!/n");  
22          return "";  
23     }  
24      
25     memset(&ifr_ip, 0, sizeof(ifr_ip));     
26     strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);     
27    
28     if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )     
29     {     
30          return "";     
31     }       
32     sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;     
33     strcpy(ipaddr,inet_ntoa(sin->sin_addr));         
34       
35     printf("local ip:%s /n",ipaddr);      
36     close( sock_get_ip );
37 
38     return ipaddr;
39 }

 

以上是关于Linux编程获取本地IP的主要内容,如果未能解决你的问题,请参考以下文章

Linux下编程获取本地IP地址的常见方法

Android应用开发提高篇-----获取本地IP

Linux bash基础特性二

六行代码获取本地IP

如何以编程方式获取计算机的本地网络 IP 地址?

Python:获取linux中本地接口/ IP地址的默认网关