将数据包IPv4地址更改为IPv6地址,并将数据包播放到网卡中

时间:2014-02-27 07:11:16

标签: c# packet

我在我的应用程序中使用PcapDotNet DLL,获取Wireshark文件并通过我的网卡播放数据包。 现在我想要做的是将数据包IPv4地址更改为IPv6数据包。

所以我使用这个DLL将paccket解析为byte[]并转换为字符串HEXA:

string hexa = "0030881545830018e7fdaea1080045000034021f40008006e616C0A80001cab11079c29c0077a0804bc8f98dd24e501840fc82b6000041525449434c452033340d0a";

这是我的IPv4地址(192.168.0.1):

C0A80001

这是从IPv4转换后的IPv6地址:

fe80:0:0:0:0:0:c0a8:1

Hexa

66-65-38-30-3A-30-3A-30-3A-30-3A-30-3A-30-3A-63-30-61-38-3A-31

public static string StirngToHexa(string str)
{
    byte[] ba = Encoding.Default.GetBytes(str);
    string hexString = BitConverter.ToString(ba);
    return hexString;

}

public static byte[] StringToByteArray(string hex)
{
    return Enumerable.Range(0, hex.Length)
                     .Where(x => x % 2 == 0)
                     .Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
                     .ToArray();
}

所以我用IPv4替换IPv6(没有' - '),构建新数据包并播放此数据包。 问题是,在播放此数据包并检查vei Wireshark结果后,数据包IP就像58.48.58.48而不是IPv6一样奇怪。 我做错了吗?

0 个答案:

没有答案