var http = require('http'), //服务器创建
dns = require('dns'), //DNS查询,主要负责解析当前DNS域名,返回DNS服务器IP地址
fs = require('fs'), //文件操作
url = require('url'), //url处理
querystring = require('querystring'); //字符串处理,处理前端传回的字符串解析 http.createServer(function(req,res){
var pathname = url.parse(req.url).pathname;
req.setEncoding("utf8");//设置返回客户端页面的数据格式,如果不设置可能会出现乱码
res.writeHead(200,{'Content-Type':'text/html'});
router(res,req,pathname);//调用router方法来处理url路由
}).listen(3001,"127.0.0.1"); function router(res,req,pathname){
switch(pathname){
case "/parse":
parseDns(res,req);
break;
default:
goIndex(res,req);
}
} function goIndex(res,req){
var readPath = __dirname+'/'+url.parse('index.html').pathname;
var indexPage = fs.readFileSync(readPath);
res.end(indexPage); } function parseDns(res,req){
var postData="";
req.addListener("data",function(postDataChunk){
postData+=postDataChunk;
});
req.addListener("end",function(){
var retData = getDns(postData,function(domain,addresses){
res.writeHead(200,{'Content-Type':'text/html'});
res.end(`
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<div style='text-align: center'>
Domain:<span style='color:red'>${domain}</span>
IP:<span style='color:red'>${addresses.join(',')}</span>
</div>
</body>
</html>
`)
});
return;
})
} function getDns(postData,callback){
var domain = querystring.parse(postData).search_dns;//应用querystring模块来获取post数据中键值为search_dns的值
dns.resolve(domain,function(err,addresses){
if(!addresses){
addresses=['不存在域名']
}
callback(domain,addresses);
});
}

执行 node parse_dns_ex.js

查询结果:

node.js实现web解析dns的更多相关文章

  1. Express 4.x Node.js的Web框架

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3821150.html ...

  2. 使用 Node.js 搭建 Web 服务器

    使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块.文件系统.url解析模块.路径解析模块.以及301重定向技术等, ...

  3. Express 4.x Node.js的Web框架----《转载》

    本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种W ...

  4. node.js之web开发 koa入门

    用Node.js开发Web服务器端,有几个显著的优势: 速度快,非常快!这得益于Node.js天生是异步的. 常见的Web框架包括:Express,Sails.js,koa,Meteor,DerbyJ ...

  5. Node.js的学习(三)node.js 开发web后台服务

    一.Express -- Web开发框架 1.Express是什么? Express 是一个简洁而灵活.目前最流行的基于Node.js的Web开发框架, 提供了一系列强大特性帮助你创建各种 Web 应 ...

  6. 快速使用node.js进行web开发

    首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这 ...

  7. koa : Express出品的下一代基于Node.js的web框架

    https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966a ...

  8. 7个Node.js的Web框架

    NodeJS也就是Node,是众所周知的使用javascript构建Web应用框架,它启动一个服务器非常简单,如下: var http = require('http'); http.createSe ...

  9. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

随机推荐

  1. 使用git保存管理代码

    1.git是个代码版本管理软件,类似SVN github是个网站,提供git服务,我们只需要注册个账号,就可以使用它的git服务,不需要自己部署git系统 git需要先在电脑端安装,安装完成后,讲产生 ...

  2. JavaSE--异常机制

    异常就是程序在运行时出现的不正常情况.发生在运行时期,java程序在运行时期发生的不正常情况,此时java就按照面向对象的思想对不正常现象进行描述和对象的封装.异常的由来:问题也是现实生活中一个具体的 ...

  3. Delphi 鼠标的编程

  4. elastic 查询

    1.match 查询 GET /_index/_search { "query": { "match": { " } } } 1.match 多条件查 ...

  5. Ubuntu中用sudo apt-get install makeinfo时,出错:Unable to locate package

    背景: 在准备ARM交叉编译环境时,执行命令: DISTRO=fsl-imx-x11 MACHINE=imx6qsabresd source fsl-setup-release.sh -b build ...

  6. aiomysql实现对数据库异步读取

    有一个库叫做aiomysql,这是一个基于asyncio和pymysql的库.至于为什么可以在tornado中使用,是因为高版本tornado的底层使用了asyncio. import asyncio ...

  7. VMware虚拟化集群的配置(一)

    一.VMware介绍 VMware vSphere 是业界领先且最可靠的虚拟化平台.vSphere将应用程序和操作系统从底层硬件分离出来,从而简化了 IT操作. VMware集群最主要的两个部分ESX ...

  8. deep_learning_Function_tensorflow_reshape()

    numpy.reshape(a, newshape, order='C')[source],参数`newshape`是啥意思? 根据Numpy文档(https://docs.scipy.org/doc ...

  9. Raspbian 2019-06-20 发布

    有关新Raspbian的信息是作为今天博客文章的一部分提供的,该帖子宣布了全新的Raspberry Pi 4: 为了支持Raspberry Pi 4,我们发布了一个全新的操作系统,基于即将发布的Deb ...

  10. RE 逆向工程初学者指南:方法和工具

    简评: RE 两种分析,静态.动态.好好分析静态因为能够解决 70 % 的问题.介绍了一些工具和方法.Enjoy yourself. 最近几天,我决定试水逆向工程,即使在计算机和编程相关领域有一定的基 ...