1.点分十进制转化为二进制数,二进制数转化为点分十进制。
#include <func.h>
int main(int argc, char* argv[])
{
ARGS_CHECK(argc, 2);
struct in_addr addr;
int ret;
ret = inet_aton(argv[1], &addr);
printf("%x\n", addr.s_addr);
printf("%s\n", inet_ntoa(addr));
printf("%x\n", inet_addr(argv[1]));
return 0;
}
2.传入域名,得到别名和ip地址
#include <func.h>
int main(int argc, char* argv[])
{
ARGS_CHECK(argc, 2);
struct hostent *p;
p = gethostbyname(argv[1]);
printf("%s\n", p->h_name);
int i;
for(i=0;p->h_aliases[i] != NULL; i++){
printf("%s\n", p->h_aliases[i]);
}
printf("%d\n", p->h_addrtype);
printf("%d\n", p->h_length);
char ip[256];
for(i=0;p->h_addr_list[i] != NULL; i++){
bzero(ip,sizeof(ip));
inet_ntop(p->h_addrtype, p->h_addr_list[i], ip, sizeof(ip));
printf("%s\n", ip);
}
return 0;
}
3.
4.
5.