This commit is contained in:
54
02_advanced/uebungen/u13_dns-lookup/index.js
Normal file
54
02_advanced/uebungen/u13_dns-lookup/index.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// 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));
|
||||
});
|
||||
Reference in New Issue
Block a user