您的位置:首页 > 其它

嵌入式 获取本地ip地址

2013-12-02 14:56 92 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: