dns and http relay with api check

This commit is contained in:
AJ ONeal 2019-05-03 00:01:06 -06:00
parent ca01e3112f
commit 45800a42ec
3 changed files with 22 additions and 4 deletions

6
package-lock.json generated
View File

@ -4,6 +4,12 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@root/request": {
"version": "1.3.10",
"resolved": "https://registry.npmjs.org/@root/request/-/request-1.3.10.tgz",
"integrity": "sha512-GSn8dfsGp0juJyXS9k7B/DjYm7Axe85wiCHfPs30eQ+/V6p2aqey45e1czb3ZwP+iPmzWCKXahhWnZhSDIil6w==",
"dev": true
},
"accepts": { "accepts": {
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.6.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.6.tgz",

View File

@ -29,6 +29,7 @@
"author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com/)", "author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com/)",
"license": "MPL-2.0", "license": "MPL-2.0",
"devDependencies": { "devDependencies": {
"@root/request": "^1.3.10",
"dig.js": "^1.3.9", "dig.js": "^1.3.9",
"dns-suite": "^1.2.12", "dns-suite": "^1.2.12",
"express": "^4.16.4" "express": "^4.16.4"

View File

@ -3,6 +3,7 @@
var crypto = require('crypto'); var crypto = require('crypto');
//var dnsjs = require('dns-suite'); //var dnsjs = require('dns-suite');
var dig = require('dig.js/dns-request'); var dig = require('dig.js/dns-request');
var request = require('util').promisify(require('@root/request'));
var express = require('express'); var express = require('express');
var app = express(); var app = express();
@ -13,7 +14,6 @@ var nameserver = nameservers[index];
app.use('/', express.static('./')); app.use('/', express.static('./'));
app.use('/api', express.json()); app.use('/api', express.json());
app.get('/api/dns/:domain', function (req, res, next) { app.get('/api/dns/:domain', function (req, res, next) {
console.log(req.params);
var domain = req.params.domain; var domain = req.params.domain;
var casedDomain = domain.toLowerCase().split('').map(function (ch) { var casedDomain = domain.toLowerCase().split('').map(function (ch) {
// dns0x20 takes advantage of the fact that the binary operation for toUpperCase is // dns0x20 takes advantage of the fact that the binary operation for toUpperCase is
@ -117,12 +117,23 @@ app.get('/api/dns/:domain', function (req, res, next) {
dig.resolveJson(query, opts); dig.resolveJson(query, opts);
}); });
app.get('/api/http', function (req, res) {
var url = req.query.url;
return request({ method: 'GET', url: url }).then(function (resp) {
res.send(resp.body);
});
});
app.get('/api/_acme_api_', function (req, res) {
res.send({ success: true });
});
module.exports = app; module.exports = app;
if (require.main === module) { if (require.main === module) {
// curl -L http://localhost:3000/api/dns/example.com?type=A // curl -L http://localhost:3000/api/dns/example.com?type=A
console.log("Listening on localhost:3000"); console.info("Listening on localhost:3000");
app.listen(3000); app.listen(3000);
console.log("Try this:"); console.info("Try this:");
console.log("\tcurl -L 'http://localhost:3000/api/dns/example.com?type=A'"); console.info("\tcurl -L 'http://localhost:3000/api/_acme_api_/'");
console.info("\tcurl -L 'http://localhost:3000/api/dns/example.com?type=A'");
console.info("\tcurl -L 'http://localhost:3000/api/http/?url=https://example.com'");
} }