狂犇的阿牛哥alvin.blog.chinaunix.net
nanye1984
为了技术,我不会停下学习的脚步,我相信我还能走二十年。
全部博文(646)
分享(0)
借鉴(1)
C(57)
C++(2)
STL(0)
Boost(0)
Linux ASM(3)
方法(5)
算法(14)
基础(70)
文件(16)
网络(9)
驱动(39)
基础(28)
进程(10)
线程(4)
信号(1)
文件IO(8)
高级IO(7)
终端IO(2)
Socket(27)
IPC(0)
消息队列(5)
同步(8)
共享内存(7)
远程调用(0)
命令(0)
Sed(0)
Awk(0)
开发(0)
调试(0)
编译(19)
服务(0)
库(7)
服务器(2)
开发板(0)
Sqlite(0)
MySQL(1)
Cadence(0)
AltiumDesigner(0)
手动焊接(0)
51&52(0)
AVR(0)
PIC(0)
元件(0)
s3c2440(2)
s3c6410(0)
2014年(8)
2013年(134)
2012年(504)
yx247198
bjpiao
左右江南
atomix2
digdeep1
cheese19
commshar
derekser
可怜的猪
boyachan
guopei99
LennonCh
orator
cynthia
aquester
丸喵喵
浪花小雨
分类:
2012-07-01 20:34:10
原文地址:linux 下获取本地IP地址 作者:embededgood
#include <stdio.h> #include <stdlib.h> #include <error.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <unistd.h> #include <sys/ioctl.h> #include <arpa/inet.h> #include <net/if_arp.h> #include <net/if.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { char ipbuf[16]; getlocaip(ipbuf); printf("loca ip = %s\n", ipbuf); exit(0); } int getlocaip(char *ip) { int sockfd; if(-1 == (sockfd = socket(PF_INET, SOCK_STREAM, 0))) { perror( "socket" ); return -1; } struct ifreq req; struct sockaddr_in *host; bzero(&req, sizeof(struct ifreq)); strcpy(req.ifr_name, "eth0"); ioctl(sockfd, SIOCGIFADDR, &req); host = (struct sockaddr_in*)&req.ifr_addr; strcpy(ip, inet_ntoa(host->sin_addr)); close(sockfd); return 1; }
上一篇:深入了解Linux的守护进程(daemons)
下一篇:LINUX下获取IP地址和MAC地址
登录 注册