mirror of
https://github.com/Lissy93/web-check.git
synced 2025-05-15 11:44:31 +02:00
Makes some functions more robust
This commit is contained in:
parent
f96c7ba25f
commit
95b13240c7
@ -1,4 +1,5 @@
|
|||||||
const net = require('net');
|
const net = require('net');
|
||||||
|
const middleware = require('./_common/middleware');
|
||||||
|
|
||||||
// A list of commonly used ports.
|
// A list of commonly used ports.
|
||||||
const PORTS = [
|
const PORTS = [
|
||||||
@ -12,7 +13,7 @@ async function checkPort(port, domain) {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const socket = new net.Socket();
|
const socket = new net.Socket();
|
||||||
|
|
||||||
socket.setTimeout(1500); // you may want to adjust the timeout
|
socket.setTimeout(1500);
|
||||||
|
|
||||||
socket.once('connect', () => {
|
socket.once('connect', () => {
|
||||||
socket.destroy();
|
socket.destroy();
|
||||||
@ -33,12 +34,8 @@ async function checkPort(port, domain) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.handler = async (event, context) => {
|
const handler = async (url, event, context) => {
|
||||||
const domain = (event.queryStringParameters || event.query).url;
|
const domain = url.replace(/(^\w+:|^)\/\//, '');
|
||||||
|
|
||||||
if (!domain) {
|
|
||||||
return errorResponse('Missing domain parameter.');
|
|
||||||
}
|
|
||||||
|
|
||||||
const delay = ms => new Promise(res => setTimeout(res, ms));
|
const delay = ms => new Promise(res => setTimeout(res, ms));
|
||||||
const timeout = delay(9000);
|
const timeout = delay(9000);
|
||||||
@ -88,3 +85,5 @@ const errorResponse = (message, statusCode = 444) => {
|
|||||||
body: JSON.stringify({ error: message }),
|
body: JSON.stringify({ error: message }),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.handler = middleware(handler);
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
|
const commonMiddleware = require('./_common/middleware');
|
||||||
|
|
||||||
const dns = require('dns').promises;
|
const dns = require('dns').promises;
|
||||||
const URL = require('url-parse');
|
const URL = require('url-parse');
|
||||||
|
|
||||||
exports.handler = async (event, context) => {
|
const handler = async (url, event, context) => {
|
||||||
try {
|
try {
|
||||||
let domain = event.queryStringParameters.url;
|
const domain = new URL(url).hostname || new URL(url).pathname;
|
||||||
const parsedUrl = new URL(domain);
|
|
||||||
domain = parsedUrl.hostname || parsedUrl.pathname;
|
|
||||||
|
|
||||||
// Get MX records
|
// Get MX records
|
||||||
const mxRecords = await dns.resolveMx(domain);
|
const mxRecords = await dns.resolveMx(domain);
|
||||||
@ -56,19 +56,13 @@ exports.handler = async (event, context) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusCode: 200,
|
|
||||||
body: JSON.stringify({
|
|
||||||
mxRecords,
|
mxRecords,
|
||||||
txtRecords: emailTxtRecords,
|
txtRecords: emailTxtRecords,
|
||||||
mailServices,
|
mailServices,
|
||||||
}),
|
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.code === 'ENOTFOUND' || error.code === 'ENODATA') {
|
if (error.code === 'ENOTFOUND' || error.code === 'ENODATA') {
|
||||||
return {
|
return { skipped: 'No mail server in use on this domain' };
|
||||||
statusCode: 200,
|
|
||||||
body: JSON.stringify({ skipped: 'No mail server in use on this domain' }),
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
statusCode: 500,
|
statusCode: 500,
|
||||||
@ -77,3 +71,5 @@ exports.handler = async (event, context) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
module.exports.handler = commonMiddleware(handler);
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
|
const commonMiddleware = require('./_common/middleware');
|
||||||
|
|
||||||
const axios = require('axios');
|
const axios = require('axios');
|
||||||
const cheerio = require('cheerio');
|
const cheerio = require('cheerio');
|
||||||
|
|
||||||
exports.handler = async (event, context) => {
|
const handler = async (url) => {
|
||||||
let url = event.queryStringParameters.url;
|
|
||||||
|
|
||||||
// Check if url includes protocol
|
// Check if url includes protocol
|
||||||
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
||||||
@ -66,3 +67,5 @@ exports.handler = async (event, context) => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.handler = commonMiddleware(handler);
|
||||||
|
Loading…
Reference in New Issue
Block a user