mirror of
https://github.com/Lissy93/web-check.git
synced 2026-05-13 06:01:02 -04:00
- Sitemap endpoint now recursively expands sitemap-index files - Fixes #165 - Strips :port from target URLs in get-ip, dns, dns-server, ports, mail-config - Fixes #203 - Configurable trust proxy (TRUST_PROXY env) so app works behind Traefik/nginx - Fixes #157 - Tranco rank now correctly says "top 1 million" (was "100 million") - Fixes #257 - Adds engines.node ">=20" so Vercel picks a supported runtime - Re #212 - Raises Vercel maxDuration from 10s to 60s, cutting most 504 timeouts - Re #251 - Re #287 - Bumps axios 1.4.8 to 1.16, closing 4 high-severity SSRF/DoS CVEs - Re #289 - Fixes mail-config crash where dns module was awaited as if promise-based - Adds reusable structured logging util for the API - Bumps a whole bunch of deps, and resolves lots of open npm CVEs
19 lines
550 B
JavaScript
19 lines
550 B
JavaScript
import dns from 'dns';
|
|
import middleware from './_common/middleware.js';
|
|
import { parseTarget } from './_common/parse-target.js';
|
|
|
|
// Resolve the IP address for the target hostname.
|
|
const lookupAsync = (address) => new Promise((resolve, reject) => {
|
|
dns.lookup(address, (err, ip, family) => {
|
|
if (err) reject(err); else resolve({ ip, family });
|
|
});
|
|
});
|
|
|
|
const ipHandler = async (url) => {
|
|
const { hostname } = parseTarget(url);
|
|
return await lookupAsync(hostname);
|
|
};
|
|
|
|
export const handler = middleware(ipHandler);
|
|
export default handler;
|