37 lines
873 B
JavaScript
37 lines
873 B
JavaScript
|
|
||
|
var http = require('http');
|
||
|
var dns = require('./dns_native');
|
||
|
var url = require('url');
|
||
|
|
||
|
http.createServer(function (req, res) {
|
||
|
var parts, type, domain, ns;
|
||
|
|
||
|
parts = url.parse(req.url).pathname.slice(1).split("/");
|
||
|
|
||
|
if (parts.length > 2) {
|
||
|
type = parts[0];
|
||
|
domain = parts[1];
|
||
|
ns = [ parts[2] ];
|
||
|
} else if (parts.length > 1) {
|
||
|
type = parts[0];
|
||
|
domain = parts[1];
|
||
|
} else if (parts.length > 0) {
|
||
|
type = 'A';
|
||
|
domain = parts[0];
|
||
|
} else {
|
||
|
res.writeHead(500, {'Content-Type': 'text/plain'});
|
||
|
res.end("Wrong request\n");
|
||
|
return;
|
||
|
}
|
||
|
res.writeHead(200, {'Content-Type': 'text/plain'});
|
||
|
|
||
|
c = dns.newChannel(ns);
|
||
|
c.query(domain, type, function(err, response) {
|
||
|
if (err) {
|
||
|
res.end("Error resolving '" + type + "/" + domain + "': " + err.message + "\n");
|
||
|
} else {
|
||
|
res.end(domain + ":\n" + response.toString() + "\n");
|
||
|
}
|
||
|
});
|
||
|
}).listen(4000);
|