Skip to content

Commit 0ce78e6

Browse files
committed
fix: fixed ipv4 mapped addresses
1 parent 30966c6 commit 0ce78e6

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

index.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,9 @@ class Resolver extends dns.promises.Resolver {
502502

503503
case dns.V4MAPPED: {
504504
if (options.family === 6 && !answers.some((answer) => isIPv6(answer)))
505-
answers = answers.map((answer) => ipaddr.process(answer));
505+
answers = answers.map((answer) =>
506+
ipaddr.parse(answer).toIPv4MappedAddress().toString()
507+
);
506508
break;
507509
}
508510

@@ -515,14 +517,18 @@ class Resolver extends dns.promises.Resolver {
515517
case dns.ADDRCONFIG | dns.V4MAPPED: {
516518
options.family = this.constructor.getAddrConfigTypes();
517519
if (options.family === 6 && !answers.some((answer) => isIPv6(answer)))
518-
answers = answers.map((answer) => ipaddr.process(answer));
520+
answers = answers.map((answer) =>
521+
ipaddr.parse(answer).toIPv4MappedAddress().toString()
522+
);
519523
break;
520524
}
521525

522526
// eslint-disable-next-line no-bitwise
523527
case dns.V4MAPPED | dns.ALL: {
524528
if (options.family === 6 && !answers.some((answer) => isIPv6(answer)))
525-
answers = answers.map((answer) => ipaddr.process(answer));
529+
answers = answers.map((answer) =>
530+
ipaddr.parse(answer).toIPv4MappedAddress().toString()
531+
);
526532
options.all = true;
527533
break;
528534
}
@@ -531,7 +537,9 @@ class Resolver extends dns.promises.Resolver {
531537
case dns.ADDRCONFIG | dns.V4MAPPED | dns.ALL: {
532538
options.family = this.constructor.getAddrConfigTypes();
533539
if (options.family === 6 && !answers.some((answer) => isIPv6(answer)))
534-
answers = answers.map((answer) => ipaddr.process(answer));
540+
answers = answers.map((answer) =>
541+
ipaddr.parse(answer).toIPv4MappedAddress().toString()
542+
);
535543
options.all = true;
536544

537545
break;

0 commit comments

Comments
 (0)