关闭

嵌入式 获取本地ip地址

439人阅读 评论(0) 收藏 举报
分类:

#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>
#defineETH_NAME       "eth0"        
int main() 
        
 int sock;
 struct sockaddr_insin;         
 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));
 fprintf(stdout, "%s\n",inet_ntoa(sin.sin_addr));

 return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:978280次
    • 积分:17617
    • 等级:
    • 排名:第540名
    • 原创:741篇
    • 转载:522篇
    • 译文:0篇
    • 评论:105条
    最新评论