|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
标题:LinuxDNSClient
请求:案例摹拟一个DNS客户端程序,依据指定的DNS服务器,对域名实行正向、逆向剖析。
成绩:今朝只能用体系默许DNS服务器,没法逆向剖析外网IP。
利用办法:
编译:$gcc-odnsdns.c
运转:$./dnswww.avnads.cn
$./dns192.168.0.8(我的内网IP)
程序:
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<netdb.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
intmain(intargc,char*argv[])
{
structsockaddr_inaddr;
structhostent*host;
char**alias;
if(argc!=2)
{
fprintf(stderr,"Usage:%shostname|ip..
a",argv[0]);
exit(1);
}
/*这里我们假定是IP,经由过程IP取得主机信息*/
if(inet_aton(argv[1],&(addr.sin_addr))!=0)
{
host=gethostbyaddr((char*)&(addr.sin_addr),4,AF_INET);
printf("AddressinformationofIp%s
",argv[1]);
}
else
{
/*不然用户应当输出的是域名,经由过程域名找主机信息*/
host=gethostbyname(argv[1]);
printf("Addressinformationofhost%s
",argv[1]);
}
if(host==NULL)
{
/*都不是,算了不找了*/
printf("NoInformationfound");
exit(1);
}
/*打印主机正式称号*/
printf("Officialhostname:
%s
",host->h_name);
/*打印主机其他称号*/
printf("Namealiases:
");
for(alias=host->h_aliases;*alias!=NULL;alias++)
printf("%s
",*alias);
/*打印主机系列IP*/
printf("
Ipaddress:
");
for(alias=host->h_addr_list;*alias!=NULL;alias++)
printf("%s
",inet_ntoa(*(structin_addr*)(*alias)));
}
</p>
无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。 |
|