node.js实现web解析dns
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的更多相关文章
- Express 4.x Node.js的Web框架
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3821150.html ...
- 使用 Node.js 搭建 Web 服务器
使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块.文件系统.url解析模块.路径解析模块.以及301重定向技术等, ...
- Express 4.x Node.js的Web框架----《转载》
本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种W ...
- node.js之web开发 koa入门
用Node.js开发Web服务器端,有几个显著的优势: 速度快,非常快!这得益于Node.js天生是异步的. 常见的Web框架包括:Express,Sails.js,koa,Meteor,DerbyJ ...
- Node.js的学习(三)node.js 开发web后台服务
一.Express -- Web开发框架 1.Express是什么? Express 是一个简洁而灵活.目前最流行的基于Node.js的Web开发框架, 提供了一系列强大特性帮助你创建各种 Web 应 ...
- 快速使用node.js进行web开发
首先关于node.js的学习,这里推荐一本比较好的教程,nodejs web开发指南,该书通俗易懂地将node.js语言特性讲解完之后,又从一个项目角度带领读者使用node.js学习web开发.相信这 ...
- koa : Express出品的下一代基于Node.js的web框架
https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966a ...
- 7个Node.js的Web框架
NodeJS也就是Node,是众所周知的使用javascript构建Web应用框架,它启动一个服务器非常简单,如下: var http = require('http'); http.createSe ...
- Node.js学习笔记——Node.js开发Web后台服务
一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...
随机推荐
- 宿主机-免密登录Docker容器
CentOS7 安装Docker 讨论QQ:1586558083 目录 一.检查系统内核 二.安装Docker 2.1 安装 2.2 查看docker版本 2.3 启动docker 三.建立docke ...
- 基于CentOS系统部署EPICS环境
1.虚拟机安装CentOS系统2.打开终端,以root账户登录3.进入/usr/local目录下,新建文件夹epics,并进入该文件夹4.在/usr/local/epics目录下,执行wget htt ...
- pytorch中的torch.repeat()函数与numpy.tile()
repeat(*sizes) → Tensor Repeats this tensor along the specified dimensions. Unlike expand(), this fu ...
- 06 Django之模型层---多表操作
一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...
- 帝国cms 遍历某个父栏目下所有的子栏目
[e:loop={"select * from phome_enewsclass where bclassid in (2) order by classid asc",0,24, ...
- python、mysql四-2:多表查询
一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table department( id int, name varchar() ); create tabl ...
- centos 7 Network 脚本
#!/bin/sh #主动启动网卡 interface=$() ifup $interface #获取当前网络信息 default_route=$(ip route show) default_int ...
- Java事务(转载)
Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 1.JDBC事务 JDBC 事务是用 Connection 对象控制的.JDBC Conne ...
- 仿响应式html:JS来判断页面是在手机端还是在PC端打开的方法
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a419419/article/detail ...
- Redis集群方案(来自网络)
参考: https://www.zhihu.com/question/21419897 http://www.cnblogs.com/haoxinyue/p/redis.html 为什么集群? 通常, ...