Files
JS/02_advanced/uebungen/u13_dns-lookup/index.js
Philippe Torrel 549233f42a
2026-07-06 10:36:25 +02:00

55 lines
1.1 KiB
JavaScript

// const dns = require('node:dns'); // commonjs
import dns from 'node:dns'; // esm module
import util from 'node:util';
import color from 'chalk';
const IP_V = 4; // we use IP protocol version 4
const URL = 'google.de';
const getIpBy = (url, ipVersion = 4) => {
return new Promise((resolve, reject) => {
// async process
dns.lookup(url, ipVersion, (error, address) => {
if (error) {
reject(error);
} else {
resolve({ address: address, family: ipVersion });
}
});
});
};
// Promises Unterobjekt von Node
const getPromisesIpBy = (url, ipVersion = 4) => {
// async process
return dns.promises.lookup(url, ipVersion);
};
// Promisify Helferfunktion
const getPromisifyIpBy = util.promisify(dns.lookup);
// Test Cases:
getIpBy(URL, IP_V)
.then((data) => {
console.log(data);
})
.catch((err) => {
console.log(color.red(err));
});
getPromisesIpBy(URL)
.then((data) => {
console.log(data);
})
.catch((err) => {
console.log(color.red(err));
});
getPromisifyIpBy(URL, IP_V)
.then((data) => {
console.log(data);
})
.catch((err) => {
console.log(color.red(err));
});