| MERGECAP(1) | MERGECAP(1) |
نام (NAME)
mergecap - ادغام دو یا چند فایل ضبط بسته در یک فایل
خلاصه دستور (SYNOPSIS)
mergecap [ -a ] [ -F <file format> ] [ -I <IDB merge mode> ] [ -s <snaplen> ] [ -V ] [ --no-merging-comment ] -w <outfile>|- <infile> [<infile> ...]
mergecap -h|--help
mergecap -v|--version
توضیحات (DESCRIPTION)
برنامهٔ Mergecap چندین فایل ضبطشده را در یک فایل خروجی منفرد که با آرگومان -w مشخص میشود، ادغام میکند. Mergecap نحوهٔ خواندن فایلهای ضبط pcap و pcapng، شامل فایلهای ایجادشده توسط tcpdump، Wireshark و ابزارهای دیگری که در این قالبها مینویسند را میداند.
بهطور پیشفرض، Mergecap فایل ضبط را در قالب pcapng مینویسد و تمامی بستههای فایلهای ضبط ورودی را درون فایل خروجی مینویسد.
Mergecap قادر به تشخیص، خواندن و نوشتن همان فایلهای ضبطی است که توسط Wireshark پشتیبانی میشوند. فایلهای ورودی نیازی به پسوند نام فایل خاصی ندارند؛ قالب فایل و فشردهسازی اختیاری gzip، zstd یا lz4 بهطور خودکار تشخیص داده خواهند شد. نزدیک به ابتدای بخش «توضیحات (DESCRIPTION)» در wireshark(1) یا https://www.wireshark.org/docs/man-pages/wireshark.html شرح مفصلی از نحوهٔ مدیریت این موارد توسط Wireshark آورده شده که دقیقاً مشابه نحوهٔ عملکرد Mergecap است.
Mergecap میتواند فایل را در چندین قالب خروجی بنویسد. از گزینهٔ -F میتوان برای تعیین قالبی که فایل ضبط در آن نوشته میشود استفاده کرد؛ دستور mergecap -F فهرستی از قالبهای خروجی موجود را ارائه میدهد.
بستهها از فایلهای ورودی بر اساس برچسب زمانی هر فریم به ترتیب زمانی ادغام میشوند، مگر آنکه گزینهٔ -a مشخص شده باشد. Mergecap فرض میکند فریمها در یک فایل ضبط از پیش به ترتیب زمانی ذخیره شدهاند. هنگامی که گزینهٔ -a مشخص شود، بستهها بدون در نظر گرفتن برچسب زمانی هر فریم، مستقیماً از هر فایل ورودی به فایل خروجی کپی میشوند.
نوع کپسولهسازی فریم در فایل خروجی، در صورتی که تمام فایلهای ورودی نوع یکسانی داشته باشند، روی همان نوع فایلهای ورودی تنظیم میشود. اگر همهٔ فایلهای ورودی نوع کپسولهسازی فریم یکسانی نداشته باشند، نوع فایل خروجی روی WTAP_ENCAP_PER_PACKET تنظیم میگردد. توجه داشته باشید که برخی از قالبهای فایل ضبط، بهویژه pcap، در حال حاضر از WTAP_ENCAP_PER_PACKET پشتیبانی نمیکنند. این ترکیب باعث شکست در ایجاد فایل خروجی خواهد شد..SH "گزینهها (OPTIONS)"
-a
باعث نادیده گرفتن برچسبهای زمانی فریمها شده و تمام بستههای نخستین فایل ورودی را و در ادامه تمام بستههای دومین فایل ورودی را مینویسد. بهطور پیشفرض، هنگامی که -a مشخص نشده باشد، محتویات فایلهای ورودی بر اساس برچسب زمانی هر فریم، با ترتیب زمانی ادغام میشوند.
نکته: هنگام ادغام، mergecap فرض میکند که بستهها درون یک فایل ضبط از قبل با ترتیب زمانی چیده شدهاند.
-F <file format>
قالب فایل خروجی ضبط را تنظیم میکند. Mergecap میتواند فایل را در چندین قالب بنویسد؛ دستور mergecap -F فهرستی از قالبهای خروجی موجود را ارائه میدهد. بهطور پیشفرض این قالب pcapng است.
-h|--help
-I <IDB merge mode>
حالت ادغام «بلوک توصیف رابط» (Interface Description Block یا IDB) را برای استفاده در حین ادغام مشخص میکند. دستور mergecap -I فهرستی از حالتهای موجود ادغام IDB را ارائه میدهد.
هر فایل ورودی دارای یک یا چند IDB است که رابط یا رابطهایی را که در ابتدا ضبط روی آنها انجام شده، توصیف میکنند. این توصیفات شامل نوع کپسولهسازی، نام رابط و غیره است. هنگامی که mergecap چندین فایل ورودی را ادغام میکند، باید این IDBها را بهنحوی برای فایل خروجی جدید ادغامشده ترکیب کند. این پرچم نحوه انجام این کار را کنترل میکند. حالتهای موجود در حال حاضر عبارتند از:
none: هیچ ادغامی روی IDBها انجام نمیشود و در عوض تمام IDBها در فایل خروجی ادغامشده کپی میشوند.
all: بلوکهای IDB تنها در صورتی ادغام میشوند که تمام فایلهای ورودی دارای تعداد یکسانی از IDB باشند و هر IDB با مدخل متناظر خود در سایر فایلها مطابقت داشته باشد. (تنها IDBهایی که در ابتدای فایلها و پیش از هر بلوک بستهای قرار دارند با یکدیگر مقایسه میشوند. بلوکهای IDB که بعداً در فایلها میآیند، تنها و تنها در صورتی با موارد تکراری ادغام میشوند که IDBهای اولیه ادغام شده باشند.) این حالت پیشفرض است.
any: هر و همه IDBهای تکراری، صرفنظر از اینکه در چه فایلی قرار دارند، در یک IDB ادغام میشوند.
توجه داشته باشید که یک IDB تنها در صورتی یک نسخه تکراری منطبق در نظر گرفته میشود که دارای همان نوع کپسولهسازی، نام، سرعت، دقت زمانی، توضیحات، توصیف و غیره باشد.
-s <snaplen>
طول اسنپشات (snapshot length) را برای استفاده هنگام نوشتن دادهها تعیین میکند. اگر پرچم -s برای تعیین طول اسنپشات استفاده شود، فریمهایی در فایل ورودی که دادههای ضبطشده بیشتری نسبت به طول اسنپشات مشخصشده دارند، تنها به اندازه داده مشخصشده توسط طول اسنپشات در فایل خروجی نوشته میشوند. این ممکن است در صورتی مفید باشد که برنامه خواننده فایل خروجی نتواند بستههای بزرگتر از اندازهای مشخص را پردازش کند (برای مثال، به نظر میرسد نسخههای snoop در Solaris 2.5.1 و Solaris 2.6 فریمهای Ethernet بزرگتر از MTU استاندارد Ethernet را رد میکنند، که باعث میشود در صورت استفاده از jumbo frames قادر به پردازش ضبطهای gigabit Ethernet نباشند).
-v|--version
-V
-w <outfile>|-
--compress <type>
فایل خروجی را با استفاده از قالب فشردهسازی type فشرده میکند. اجرای --compress بدون هیچ آرگومانی فهرستی از قالبهای فشردهسازی پشتیبانیشده برای نوشتن را ارائه میدهد. نوع دادهشده بر پسوند outfile اولویت دارد.
--no-merging-comment
از تولید یادداشت ضبط "File created by merging:..." در فایل خروجی جلوگیری میکند.
بهطور پیشفرض یک یادداشت چندخطی ضبط در فایل خروجی (ادغامشده) ایجاد میشود که تمام فایلهای در حال ادغام را فهرست میکند. با این حال، اگر یادداشت ضبط تولیدشده طولانیتر از ۶۵۵۳۵ بایت باشد، بدون هشدار نادیده گرفته میشود.
--log-level <level>
--log-fatal <level>
--log-fatal-count <count>
--log-domains <list>
--log-debug <list>
--log-noisy <list>
--log-fatal-domains <list>
--log-file <path>
مثالها (EXAMPLES)
برای ادغام دو فایل ضبط با یکدیگر در یک فایل سوم، بهطوری که آخرین بسته یک فایل ۱۰۰ ثانیه پیش از نخستین بسته فایل دیگر برسد، از توالی دستورات زیر استفاده کنید.
ابتدا، از این دستور استفاده کنید:
capinfos -aeS a.pcap b.pcap
تا زمان شروع و پایان دو فایل ضبط را بر حسب ثانیههای سپریشده از ۱ ژانویه ۱۹۷۰، ساعت 00:00:00 UTC مشخص کنید.
اگر a.pcap در زمان 1009932757 شروع شود و b.pcap در زمان 873660281 پایان یابد، تنظیم زمانی مورد نیاز برای b.pcap که موجب شود ۱۰۰ ثانیه پیش از شروع a.pcap به پایان برسد، برابر خواهد بود با: 1009932757 - 873660281 - 100 = 136272376 ثانیه.
بنابراین، گام بعدی استفاده از دستور زیر است:
editcap -t 136272376 b.pcap b-shifted.pcap
تا نسخهای از b.pcap تولید شود که برچسبهای زمانی آن ۱۳۶۲۷۲۳۷۶ ثانیه به جلو منتقل شده باشد.
سپس گام نهایی استفاده از این دستور خواهد بود:
mergecap -w compare.pcap a.pcap b-shifted.pcap
تا فایلهای a.pcap و b.pcap منتقلشده را در compare.pcap ادغام کند..SH "همچنین ببینید (SEE ALSO)"
pcap(3)، wireshark(1)، tshark(1)، dumpcap(1)، editcap(1)، text2pcap(1)، pcap-filter(7) یا tcpdump(8)
نکات (NOTES)
Mergecap تا حد زیادی بر اساس editcap نوشتهٔ Richard Sharpe <sharpe[AT]ns.aus.com> و Guy Harris <guy[AT]alum.mit.edu> توسعه یافته است.
این صفحهٔ راهنما مربوط به Mergecap نسخهٔ 4.7.3 است. Mergecap بخشی از توزیع Wireshark میباشد. جدیدترین نسخهٔ Wireshark را میتوان در نشانی زیر یافت: https://www.wireshark.org.
نسخههای HTML صفحات راهنمای پروژهٔ Wireshark در نشانی زیر در دسترس هستند: https://www.wireshark.org/docs/man-pages.
نویسندگان (AUTHORS)
نویسندهٔ
اصلی
Scott Renfro <scott[AT]renfro.org>
مشارکتکنندگان
Bill Guyton <guyton[AT]bguyton.com>
| 2026-09-03 |