我试图通过SharpPcap将Tcp数据包发送到服务器但是它有效,有人可以帮助我或解释我如何使用SharpPcap和Packet.Net发送TcpPackets。
更多信息: 我正在嗅探一个连接,并试图在特定数据包收入的情况下向服务器发送消息。
感谢阅读!
答案 0 :(得分:0)
我也有同样的问题。我想从第一个接口更改程序包的ip地址,并从另一个接口发送程序包,但是我只看到ARP程序包,而不是TCP程序包。我做错了什么?
private void device_OnPacketArrival(object sender, CaptureEventArgs e)
{
var time = e.Packet.Timeval.Date;
var len = e.Packet.Data.Length;
var packet = PacketDotNet.Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);
var tcpPacket = packet.Extract<PacketDotNet.TcpPacket>();
if (tcpPacket != null)
{
var ipPacket = (PacketDotNet.IPPacket)tcpPacket.ParentPacket;
System.Net.IPAddress srcIp = ipPacket.SourceAddress;
System.Net.IPAddress dstIp = ipPacket.DestinationAddress;
int srcPort = tcpPacket.SourcePort;
int dstPort = tcpPacket.DestinationPort;
if (IsHostOnly && srcIp.Equals(OwnPair.SourceIp))
{
ipPacket.SourceAddress = System.Net.IPAddress.Parse("10.0.4.15");
tcpPacket.ParentPacket = ipPacket;
TransmitDevice.SendPacket(tcpPacket);
}
Console.WriteLine("{0}:{1}:{2},{3} Len={4} {5}:{6} -> {7}:{8}",
time.Hour, time.Minute, time.Second, time.Millisecond, len,
srcIp, srcPort, dstIp, dstPort);
}
}