From a568a05bf749299fd328906f2ab4537199f1d47d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=81=E4=B9=9D?= <366193849@qq.com> Date: Fri, 17 Sep 2021 22:11:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9ipv6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FastGithub.Dns/DnsInterceptor.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/FastGithub.Dns/DnsInterceptor.cs b/FastGithub.Dns/DnsInterceptor.cs index 750bc34..4213113 100644 --- a/FastGithub.Dns/DnsInterceptor.cs +++ b/FastGithub.Dns/DnsInterceptor.cs @@ -126,10 +126,20 @@ namespace FastGithub.Dns packetLength += (uint)responsePayload.Length - packet.PacketPayloadLength; // 修改ip包 - var destAddress = packet.IPv4Header->DstAddr; - packet.IPv4Header->DstAddr = packet.IPv4Header->SrcAddr; - packet.IPv4Header->SrcAddr = destAddress; - packet.IPv4Header->Length = BinaryPrimitives.ReverseEndianness((ushort)packetLength); + if (packet.IPv4Header != null) + { + var destAddress = packet.IPv4Header->DstAddr; + packet.IPv4Header->DstAddr = packet.IPv4Header->SrcAddr; + packet.IPv4Header->SrcAddr = destAddress; + packet.IPv4Header->Length = BinaryPrimitives.ReverseEndianness((ushort)packetLength); + } + else + { + var destAddress = packet.IPv6Header->DstAddr; + packet.IPv6Header->DstAddr = packet.IPv6Header->SrcAddr; + packet.IPv6Header->SrcAddr = destAddress; + packet.IPv6Header->Length = BinaryPrimitives.ReverseEndianness((ushort)packetLength); + } // 修改udp包 var destPort = packet.UdpHeader->DstPort;