不多说:直接贴代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netdb.h>
#include<sys/utsname.h>
int main()
{
struct utsname hostname;
struct hostent *hp;
if(uname(&hostname) < 0)
{
perror("uname");
return -1;
}
printf("sysname :%s\n",hostname.sysname);
printf("nodename:%s\n",hostname.nodename);
printf("release :%s\n",hostname.release);
printf("version :%s\n",hostname.version);
printf("machine :%s\n",hostname.machine);
hp = gethostbyname(hostname.nodename);
if(hp == NULL)
{
perror("gethostbyname");
return -1;
}
printf("h_name :%s\n",hp->h_name);
char **other_name;
for(other_name = hp->h_aliases;*other_name != NULL;other_name++)
{
printf("other_name :%s\n",*other_name);
}
printf("h_addrtype :%d\n",hp->h_addrtype);
printf("h_length :%d\n",hp->h_length);
struct in_addr in;
char **ipaddr;
for(ipaddr=hp->h_addr_list;*ipaddr != 0;ipaddr++)
{
memcpy(&in.s_addr,*ipaddr,sizeof(in.s_addr));
printf("IP :%s\n",inet_ntoa(in));
}
return 0;
}