whois/server/api/dns.post.ts
2024-03-02 19:48:03 +08:00

32 lines
1.1 KiB
TypeScript

import dns from 'node:dns/promises';
export default defineEventHandler(async (event) => {
const body = await readBody(event)
const domain = body.domain;
if (!domain) {
return { error: 'Missing domain' };
}
try {
const aRecords = await dns.resolve(domain, 'A');
const nsRecords = await dns.resolve(domain, 'NS');
const soaRecord = await dns.resolveSoa(domain);
return {
A: aRecords.map(ip => ({ TTL: '600', Record: ip })), // 示例中的TTL是假设的
NS: nsRecords.map(ns => ({ TTL: '21600', Record: ns })), // 示例中的TTL是假设的
SOA: {
MName: soaRecord.nsname,
Email: soaRecord.hostmaster,
Serial: soaRecord.serial,
Refresh: soaRecord.refresh,
Retry: soaRecord.retry,
Expire: soaRecord.expire,
MinimumTTL: soaRecord.minttl,
}
};
} catch (error) {
console.error(`Error fetching DNS records for ${domain}:`, error);
return { error: 'Failed to fetch DNS records' };
}
})