仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 687|回复: 7
打印 上一主题 下一主题

[其他Linux] linux教程之Linux下复杂的DNS实例一则

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:06:23 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 08:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表