/// <summary> /// 通过PacketDotNet类库实现 /// </summary> /// <param name="ppp"></param> private void PPP(PacketDotNet.PPPPacket ppp) { if (PPPNode == null) { PPPNode = CreatNode("PPP", 10); } PPPNode.Text = "PPP [0x" + ((ushort)ppp.Protocol).ToString("X4") + "]"; PPPNode.Nodes.Clear(); PPPNode.Nodes.Add("Protocol: " + ppp.Protocol.ToString() + " [0x" + ppp.Protocol.ToString("X") + "]"); Tree.Nodes.Add(PPPNode); switch (ppp.Protocol) { case PPPProtocol.IPv4: case PPPProtocol.IPv6: IpPacket ip = IpPacket.GetEncapsulated(packet); IP(ip); break; case PPPProtocol.LCP: LCPPacket lcp = LCPPacket.GetEncapsulated(packet); LCP(lcp); break; case PPPProtocol.CompressedDatagram: ExtraData(ppp.PayloadData); return; case PPPProtocol.Padding: //填充 break; } }
private void LCP(LCPPacket lcp) { if (LCPNode == null) { LCPNode = CreatNode("LCP", 4); } LCPNode.Nodes.Clear(); LCPNode.Nodes.Add("Code: " + lcp.Code + " [0x" + lcp.Code.ToString("X") + "]"); LCPNode.Nodes.Add("Identifier: " + lcp.Identifier.ToString("X2")); LCPNode.Nodes.Add("Length: " + lcp.Length); LCPNode.Nodes.Add("Data (" + lcp.PayloadData.Length + "bytes)"); Tree.Nodes.Add(LCPNode); }
private void PPPS(PppSerialPacket ppps) { if (PPPSNode == null) { PPPSNode = new TreeNode("PPP"); PPPSNode.Name = "PPPSerial"; PPPSNode.SelectedImageIndex = 0; PPPSNode.ImageIndex = 0; } PPPSNode.Nodes.Clear(); PPPSNode.Nodes.Add("Address: 0x" + ppps.Address.ToString("X2")); PPPSNode.Nodes.Add("Control: 0x" + ppps.Control.ToString("X2")); PPPSNode.Nodes.Add("Protocol: " + ppps.Protocol.ToString() + " [0x" + ppps.Protocol.ToString("X") + "]"); Tree.Nodes.Add(PPPSNode); switch (ppps.Protocol) { case PPPProtocol.IPv4: case PPPProtocol.IPv6: IpPacket ip = IpPacket.GetEncapsulated(packet); IP(ip); break; case PPPProtocol.LCP: LCPPacket lcp = LCPPacket.GetEncapsulated(packet); LCP(lcp); break; case PPPProtocol.Padding: //填充 case PPPProtocol.CDP: //Csico 发现协议 break; } }