首页 > 代码库 > node.js--dns解析demo
node.js--dns解析demo
//引入模块var http = require(‘http‘), url = require(‘url‘), querystring = require(‘querystring‘), fs = require(‘fs‘), dns = require(‘dns‘);//展现填写页面。由res.end输出查询的form表单var goIndex = function(req, res){ res.end("<html>" + "<head>" + "<title>DNS查询</title>" + "<meta http-equiv=‘content-type‘ content=‘text/html;charset=utf-8‘>" + "</head>" + "<body>" + "<form action=‘/parse‘ method=‘post‘>" + "<input type=‘text‘ name=‘search_dns‘/>" + "<input type=‘submit‘ value=http://www.mamicode.com/‘查询‘ />" + "</form>" + "</body>" + "</html>");};//dns解析函数。通过dns模块的dns.resolve解析,解析成功执行回调,回调中把值写到参数函数的入参中var goDns = function(postData, callback){ var domainValue = http://www.mamicode.com/querystring.parse(postData).search_dns; //获取post数据中的search_dns dns.resolve(domainValue, function(err, addresses){ if(!addresses){ addresses = [‘域名不存在‘]; } callback(domainValue, addresses); });};//dns解析。获取post过来的数据,用dns模块进行解析,输出解析结果var parseDns = function(req, res){ //读取post过来的数据 var postData = http://www.mamicode.com/‘‘; //req请求对象有addListener方法,‘data‘事件是有数据传送到服务端时触发,‘end‘是在数据发送完毕时触发 req.addListener(‘data‘, function(dataChunk){ postData += dataChunk; }); req.addListener(‘end‘, function(){//数据完全传送完毕,进行dns解析 goDns(postData, function(domain, addresses){//回调中输出解析结果展示页面 res.end("<html>" + "<head>" + "<meta http-equiv=‘content-type‘ content=‘text/html;charset=utf-8‘>" + "</head>" + "<div>" + "domain: <span>" + domain + "</span>" + "ip:" + addresses.join(‘,‘) + "</div>" + "</html>"); }); });};var router = function(req, res, pathname){ switch(pathname){ case ‘/parse‘ : parseDns(req, res); break; default : goIndex(req, res); }};http.createServer(function(req, res){ //获取请求相对路径 var pathname = url.parse(req.url).pathname; //将请求设置为utf-8防止乱码 req.setEncoding(‘utf8‘); //写返回的头 res.writeHead(200, {‘Content-Type‘ : ‘text/html‘}); //router请求路径若为/parse则进行dns解析,若不是则展示填写页面 router(req, res, pathname);}) .listen(3000, ‘127.0.0.1‘);
参考:《node.js开发实战详解》清华大学出版社,此文可以看作是此书的读书笔记
node.js--dns解析demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。