1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| const dns = require('dns');
// カスタムDNSサーバーを設定
dns.setServers(['8.8.8.8', '8.8.4.4']);
// 手動でDNSルックアップ
dns.resolve('api.example.com', (err, addresses) => {
if (err) {
console.error('DNS lookup failed:', err);
return;
}
console.log('IP addresses:', addresses);
});
// リトライ付きリクエスト
const axios = require('axios');
async function fetchWithRetry(url, retries = 3) {
for (let i = 0; i < retries; i++) {
try {
return await axios.get(url);
} catch (error) {
if (error.code === 'ENOTFOUND' && i < retries - 1) {
await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
continue;
}
throw error;
}
}
}
|