当前位置: 技术问答>linux和unix
如何获得本机ip地址
来源: 互联网 发布时间:2015-03-30
本文导语: 我的程序如下: int main() { char buffer[32]; struct hostent* host; memset(buffer, 0, 32); gethostname(buffer, 32); host=gethostbyname(buffer); printf("%s!n", inet_ntoa(*((struct in_addr*)host->addr))); exit(0); } ...
我的程序如下:
int main()
{
char buffer[32];
struct hostent* host;
memset(buffer, 0, 32);
gethostname(buffer, 32);
host=gethostbyname(buffer);
printf("%s!n", inet_ntoa(*((struct in_addr*)host->addr)));
exit(0);
}
上面的程序打印的结果是127.0.0.1,并不是我本机的ip地址.
请各位高手指教!!!
多谢!!!
int main()
{
char buffer[32];
struct hostent* host;
memset(buffer, 0, 32);
gethostname(buffer, 32);
host=gethostbyname(buffer);
printf("%s!n", inet_ntoa(*((struct in_addr*)host->addr)));
exit(0);
}
上面的程序打印的结果是127.0.0.1,并不是我本机的ip地址.
请各位高手指教!!!
多谢!!!
|
http://www.chinaunix.net/forum/viewtopic.php?t=85716
|
#include
#include
#include
#include
#include
main(int argc, char *argv[])
{
struct sockaddr_in addr;
struct hostent *he;
char **alias;
if(argc h_name);
printf("name aliases:");
for(alias=he->h_aliases; *alias!=NULL ; alias ++)
printf(" %s, ", *alias);
for(alias=he->h_addr_list; *alias!=NULL ; alias ++)
printf(" %s, ", inet_ntoa(*(struct in_addr *)(*alias)));
}
}
#include
#include
#include
#include
main(int argc, char *argv[])
{
struct sockaddr_in addr;
struct hostent *he;
char **alias;
if(argc h_name);
printf("name aliases:");
for(alias=he->h_aliases; *alias!=NULL ; alias ++)
printf(" %s, ", *alias);
for(alias=he->h_addr_list; *alias!=NULL ; alias ++)
printf(" %s, ", inet_ntoa(*(struct in_addr *)(*alias)));
}
}