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 ...
随机推荐
- excel库中数据下载
PHP实现EXCEL下载数据 <?php include("Classes/PHPExcel.php"); $exce=new PHPExcel(); $exce->s ...
- golang强制类型转换
github.com/Unknwon/com包的使用 package main import ( "fmt" "github.com/Unknwon/com" ...
- js设计模式--发布订阅模式
前言 本系列文章主要根据<JavaScript设计模式与开发实践>整理而来,其中会加入了一些自己的思考.希望对大家有所帮助. 概念 发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的 ...
- java中接口知识点大总结
接口的确很不好理解!!!!!那我来好好总结一下: 首先要理解接口是一个独立存在的,和类是不一样的东西,所以,直接用接口的定义是: 访问权限控制符 interface 接口名 [extends 接口列 ...
- sql server truncate语句
truncate语句 --truncate table '表名' --这样就利用SQL语句清空了该数据表,而不保留日志
- 第一篇 jQuery
1-1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...
- 109、Secret的使用场景 (Swarm16)
参考https://www.cnblogs.com/CloudMan6/p/8082429.html 我们可以用secret管理任何敏感数据.这些敏感数据是容器在运行时需要的.同时我们又不想把这些 ...
- LintCode 6---合并排序数组 II
import java.util.Arrays; public class Lint6 { /* * 合并两个排序的整数数组A和B变成一个新的数组.新数组也要有序. */ public static ...
- hiper、sitespeed性能工具
https://github.com/pod4g/hiper hiper: A statistical analysis tool for performance testing https: ...
- 目录:Matrix Differential Calculus with Applications in Statistics and Econometrics,3rd_[Magnus2019]
目录:Matrix Differential Calculus with Applications in Statistics and Econometrics,3rd_[Magnus2019] Ti ...