五,利用node进行DNS解析

来源:互联网 发布:mac ext4 读写 编辑:程序博客网 时间:2024/05/20 23:30
/** * Created by Administrator on 2017/1/17. */var http = require("http");var fs = require("fs");var dns = require("dns");var url = require("url");var querystring = require("querystring");http.createServer(function (req, res) {    var pathname = url.parse(req.url).pathname;    req.setEncoding("utf8");    router(res, req, pathname);}).listen(1337,"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'>" +               "<div style='text-align: center'>" +               "Domain:<span style='color: darkred'>"+domain+"</span><br/>" +               "IP:<span style='color: darkred'>"+addresses.join(",")+"</span></div></head></html>")       });        return;    });}function getDns(postData, callback){    var domain = querystring.parse(postData).search_dns;    dns.resolve(domain,function (err, addresses) {       if(!addresses){           addresses = ["不存在域名"];       }       callback(domain,addresses);    });};
0 0