Node.JS解析DNS(NodeJS开发实战详解)
来源:互联网 发布:个人域名如何备案 编辑:程序博客网 时间:2024/06/10 03:45
Node.JS解析DNS(NodeJS开发实战详解)
本篇博文实现使用Node.JS解析DNS:
需要加载的模块:
- var http = require(‘http’) //服务器创建
- dns = require(‘dns’) //DNS查询
- fs =require(‘fs’) //文件操作
- url = require(‘url’)//url处理
- querystring = require(“querystring”)//字符串处理
下面是parse_dns.js文件代码:
/* 首先 require 加载需要的 Node.js 原生模块 */var http = require('http'), //服务器创建 dns = require('dns'), //DNS查询 fs = require('fs'), //文件操作 url = require('url') //url 处理 querystring = require("querystring") //字符串处理/* 创建http 服务器*/http.createServer(function (req, res) { /* 写 http head 返回html,因此Content-Type为html*/ var pathname = url.parse(req.url).pathname req.setEncoding("utf8"); res.writeHead(200, {'Content-Type':'text/html'}); router(res,req,pathname);}).listen(3000,'127.0.0.1');/* 打印运行log*/console.log('Server running at http:127.0.01');function router(res, req, pathname) { switch(pathname){ case "/parse": parseDns(res,req); break; default: goIndex(res,req); }}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><div style='text-align:center'>" + "Domain:<span style='color:red'>" + domain + "" + "</span> IP:<span style='color:red'>" + addresses.join(',') + "</span></div></html>"); }); return; });}function goIndex(res,req) { var readPath = __dirname + '/' + url.parse('index.html').pathname; var indexPage = fs.readFileSync(readPath); /*返回*/ res.end(indexPage);}function getDns(postData,callback){ var domain = querystring.parse(postData).search_dns dns.resolve(domain, function (err, address) { if(!address){ address = ['不存在域名'] } callback(domain,address); });}
下面是index.html文件代码:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>DNS查询</title></head><body> <h1 style="text-align: center">DNS 查询工具</h1> <div style="text-align: center"> <form action="/parse" method="post"> 查询DNS: <input type="text" name="search_dns"> <input type="submit" value="查询"> </form> <div id='check_result'></div> </div></body></html>
运行parse_dns.js并在浏览器输入127.0.0.1:3000之后会显示如下界面:
在输入框中输入网址,点击查询之后的结果:
阅读全文
0 0
- Node.JS解析DNS(NodeJS开发实战详解)
- Node.Js开发实战详解
- Node.js开发实战详解之学习笔记(一)
- Node.js静态文件服务器实战(接触nodejs开发中比较实用的部分技巧,获益匪浅)
- Node.js静态文件服务器实战(接触nodejs开发中比较实用的部分技巧,获益匪浅)
- Node.js实现web解析DNS(四)
- Node.js开发实战详解实践3.3错误
- Nodejs(一)--- Node.js安装及开发环境
- Node.js开发 ---- ueditor for nodejs
- node.js学习(十六、DNS模块)
- Node.js DNS模块
- Node.js实战(1)
- node.js学习笔记(2)---Nodejs开发框架Express3.0开发手记–从零开始
- 【Nodejs】windows下node.js安装教程图文详解
- Nodejs学习笔记(一)--- 简介及安装Node.js开发环境
- Node.js零起点开发(一)-NodeJs安装、Hello Word
- Node.js零起点开发(三)-NodeJs路由
- DNS (bind)实战详解
- itertools 的 chain() 方法
- 腾讯笔试题目准备
- 移动端Webapp的那些令你头疼的事
- Python安装文件选择
- [置顶] Eclipse EE 中如何安装对应版本的Springsource Tool Suite(STS)以及集成了STS插件的eclipse的下载
- Node.JS解析DNS(NodeJS开发实战详解)
- MQTT
- PowerShell日常管理系列——01Disable-Mailbox命令使用方法
- Java开发web的开发模式
- 最长公共子串(动态规划的思想)
- 51nod 1832 先序遍历与后序遍历(树的遍历方法+高精度模板)
- QT和MFC
- s2s4h5整合
- Java实现矩阵顺时针旋转90度