2010-01-31 28 views
11

Tôi đang tìm một mã mẫu để khôi phục gói tin IP trong C bằng libpcap *. Phân mảnh gói tin IP có được thực hiện trong thư viện libpcap chính thức không? Tôi đã tìm thấy đề xuất này: http://www.mail-archive.com/[email protected]/msg02991.html[this][1].libpcap IP Packet Reassembly

Có bất kỳ triển khai nào chống phân mảnh gói IP hay không.

[1]: http://www.mail-archive.com/[email protected]/msg02991.html [+]

* Lý do tìm kiếm các mẫu mã là chỉ để cho vui và học tập và tôi không muốn tốn quá nhiều thời gian cho việc viết mã cho IP gói reassembly.

+0

bountied. tìm kiếm những điều khá giống nhau. OP, @systemsfault, bất kỳ tiến trình nào bạn có thể chia sẻ ?;) –

+0

@mhambra, xem mã của libnids có vẻ như sử dụng libpcap. Trên thực tế tôi rời khỏi dự án và không nhìn lại nó, vì vậy tôi không có đề xuất nào khác ngoài đề nghị của tsg. – systemsfault

Trả lời

9

Không, tôi chắc chắn rằng bản vá không được tạo thành libpcap. Nhưng bạn có thể làm chống phân mảnh ip (và cũng làm theo các luồng TCP) với libnids.

+0

tsg, libnids sử dụng ổ cắm unix thô nhưng tôi cần triển khai với libpcap. Bởi vì tôi đang cố gắng tìm hiểu libpcap và cố gắng xây dựng một ứng dụng thử nghiệm với nó. lwip cũng có tính năng reassembly/defragmentation gói. – systemsfault

+0

Sau một cái nhìn ngắn gọn trong mã libnids, có vẻ như nó sử dụng libpcap. Xem ví dụ nids_pcap_handler(). – tsg

+1

sau khi nhìn ngắn gọn, tôi có thể nói có nó sử dụng pcap; nhưng không phải cho reassembly.Để reassembly nó có vẻ như sử dụng ổ cắm nguyên, xem mã nguồn của ip_fragment.c. – systemsfault

0

Libpcap là thư viện để nắm bắt các gói lớp liên kết thô; nó được dự định sẽ được sử dụng bởi các chương trình và thư viện tự xử lý các gói đó, bao gồm khôi phục phân đoạn IP, vv .. Vì vậy, nó không, và sẽ không bao giờ, thực hiện khôi phục IP; thuộc về một thư viện riêng biệt.

1

Nếu bạn đang tìm kiếm công cụ thực hiện khôi phục IP, bạn có thể thanh toán IPDefragUtil. Bạn cũng có thể xem mã nguồn khôi phục IP herehere