32 lines
1.1 KiB
TypeScript
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' };
|
|
}
|
|
})
|