네트워크 패킷을 캡쳐하여 그 구조를 분석하거나 패킷을 구성할 수 있는 Library를 제공한다.
사용언어
C#
주요 feature 에 대한 시나리오 1 개 ( 사용법 )
장치 열기
네트워크 패킷 캡처
캡처 패킷 분석.
using System;
using SharpPcap;
using PacketDotNet;
namespace CapturingAndParsingPackets
{
class MainClass
{
// used to stop the capture loop
private static bool stopCapturing = false;
public static void Main(string[] args)
{
int i = 0;
var devices = CaptureDeviceList.Instance;
foreach(var dev in devices)
{
Console.WriteLine("{0}) {1} {2}", i, dev.Name, dev.Description);
i++;
}
Console.WriteLine();
Console.Write("-- Please choose a device to capture: ");
i = int.Parse( Console.ReadLine() );
var device = devices[i];
// Open the device for capturing
int readTimeoutMilliseconds = 1000;
device.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds);
while(stopCapturing == false)
{
// Capture a packet
var rawCapture = device.GetNextPacket();
// Parse the packet
Packet p = Packet.ParsePacket(rawCapture.LinkLayerType, rawCapture.Data);
// Print the packet
Console.WriteLine(p.ToString());
}
device.Close();
}
}
}
총라인수, 폴더구조(depth 2-3), 프로젝트 폴더기준 capture (CLI 기반이면 ls 결과)
총라인수
263 text files.
259 unique files.
48 files ignored.
프로젝트명
분야 및 한줄 정의
사용언어
주요 feature 에 대한 시나리오 1 개 ( 사용법 )
총라인수, 폴더구조(depth 2-3), 프로젝트 폴더기준 capture (CLI 기반이면 ls 결과)
http://cloc.sourceforge.net v 1.60 T=0.55 s (457.7 files/s, 87371.7 lines/s)
Language files blank comment code
C# 236 5554 13364 24005 XML 1 87 2 3934 MSBuild scripts 6 0 14 557 Bourne Again Shell 4 43 35 102 ASP.Net 3 1 0 26
SUM: 250 5685 13415 28624
. ├── ArchitectureNotes ├── Examples │ ├── CapturingAndParsingPackets │ ├── CapturingAndParsingWiFiPackets │ ├── ConstructingPackets │ ├── ConstructingWiFiPackets │ ├── SharpPcap.dll │ ├── SharpPcap.dll.config │ └── SharpPcap.xml ├── LICENSE ├── PacketDotNet │ ├── ARPFields.cs │ ├── ARPOperation.cs │ ├── ARPPacket.cs │ ├── ApplicationPacket.cs │ ├── AssemblyInfo.cs │ ├── DataLinkPacket.cs │ ├── DrdaCodepointType.cs │ ├── DrdaDDMFields.cs │ ├── DrdaDDMPacket.cs │ ├── DrdaDDMParameter.cs │ ├── DrdaPacket.cs │ ├── EthernetFields.cs │ ├── EthernetPacket.cs │ ├── EthernetPacketType.cs │ ├── ICMPv4Fields.cs │ ├── ICMPv4Packet.cs │ ├── ICMPv4TypeCodes.cs │ ├── ICMPv6Fields.cs │ ├── ICMPv6Packet.cs │ ├── ICMPv6Types.cs │ ├── IGMPMessageType.cs │ ├── IGMPv2Fields.cs │ ├── IGMPv2Packet.cs │ ├── ILogInactive.cs │ ├── IPProtocolType.cs │ ├── IPv4Fields.cs │ ├── IPv4Packet.cs │ ├── IPv6Fields.cs │ ├── IPv6Packet.cs │ ├── Ieee80211 │ ├── Ieee8021QFields.cs │ ├── Ieee8021QPacket.cs │ ├── IeeeP8021PPriorities.cs │ ├── InternetLinkLayerPacket.cs │ ├── InternetPacket.cs │ ├── IpPacket.cs │ ├── IpPort.cs │ ├── IpVersion.cs │ ├── LLDP │ ├── LLDPPacket.cs │ ├── LSA.cs │ ├── LSAFields.cs │ ├── LSAType.cs │ ├── Libraries │ ├── LinkLayers.cs │ ├── LinuxSLLFields.cs │ ├── LinuxSLLPacket.cs │ ├── LinuxSLLType.cs │ ├── MiscUtil │ ├── NullFields.cs │ ├── NullPacket.cs │ ├── NullPacketType.cs │ ├── OSPFPacket.cs │ ├── OSPFPacketType.cs │ ├── OSPFVersion.cs │ ├── OSPFv2Fields.cs │ ├── OSPFv2Packet.cs │ ├── PPPFields.cs │ ├── PPPPacket.cs │ ├── PPPProtocol.cs │ ├── PPPoECode.cs │ ├── PPPoEFields.cs │ ├── PPPoEPacket.cs │ ├── Packet.cs │ ├── PacketDotNet.csproj │ ├── PacketOrByteArraySegment.cs │ ├── PayloadType.cs │ ├── RawIPPacket.cs │ ├── RawIPPacketProtocol.cs │ ├── SessionPacket.cs │ ├── StringOutputType.cs │ ├── Tcp │ ├── TcpFields.cs │ ├── TcpPacket.cs │ ├── TransportPacket.cs │ ├── UdpFields.cs │ ├── UdpPacket.cs │ ├── Utils │ └── WakeOnLanPacket.cs ├── PacketDotNet.nuspec ├── PacketNet.slnArchitectureNotes LICENSE PacketDotNet.nuspec README.md Test Examples PacketDotNet PacketNet.sln Scripts
├── README.md ├── Scripts │ ├── Common │ ├── ReleaseProcess │ ├── build_release │ ├── generate_release_notes │ ├── make_bin_release │ └── make_src_release └── Test ├── ByteSetupMethods.cs ├── CaptureFiles ├── LoggingConfiguration.cs ├── Misc ├── NUnitSetupClass.cs ├── PacketType ├── Performance ├── Rate.cs ├── '''Test.csproj ├── lib └── log4net.config
ArchitectureNotes LICENSE PacketDotNet.nuspec README.md Test Examples PacketDotNet PacketNet.sln Scripts