FPING(8) FPING(8)

fping - ارسال بسته‌های ICMP ECHO_REQUEST به میزبان‌های شبکه

fping [ options ] [ systems... ]

برنامه fping مشابه ping است که از درخواست پژواک (Echo Request) پروتکل هدایت پیام‌های اینترنتی (ICMP) برای تعیین پاسخگو بودن یک میزبان مقصد استفاده می‌کند. fping با ping تفاوت دارد، از این نظر که می‌توانید هر تعداد مقصد را در خط فرمان مشخص کنید، یا فایلی حاوی فهرست مقاصد جهت پینگ ارائه دهید. به‌جای ارسال مداوم به یک مقصد تا زمان اتمام مهلت (Timeout) یا دریافت پاسخ، fping یک بسته پینگ ارسال کرده و به صورت چرخشی (Round-robin) به سراغ مقصد بعدی می‌رود. در حالت پیش‌فرض، اگر مقصدی پاسخ دهد، ثبت شده و از فهرست مقاصد جهت بررسی حذف می‌شود؛ اگر مقصدی در یک بازه زمانی مشخص یا پس از محدودیت بازآزمایی پاسخی ندهد، به عنوان دسترس‌ناپذیر علامت‌گذاری می‌شود. fping همچنین از ارسال تعداد مشخصی پینگ به یک مقصد، یا تکرار مداوم و نامحدود (مشابه ping ) پشتیبانی می‌کند. برعکس ping ، برنامه fping برای استفاده در اسکریپت‌ها طراحی شده و خروجی آن به گونه‌ای است که تجزیه (Parse) آن آسان باشد. آمار لحظه‌ای را می‌توان بدون خاتمه پردازش از طریق سیگنال SIGQUIT (کلید ترکیبی ^\ روی صفحه‌کلید در اکثر سیستم‌ها) به دست آورد.

-4, --ipv4
محدود کردن تحلیل نام‌ها و IPها به آدرس‌های IPv4.
-6, --ipv6
محدود کردن تحلیل نام‌ها و IPها به آدرس‌های IPv6.
نمایش سیستم‌های فعال و پاسخگو. (گزینه‌های -c و -C رفتار -a را نادیده می‌گیرند.)
نمایش مقاصد با آدرس به جای نام DNS. در ترکیب با -d، خروجی شامل هر دو مورد آدرس IP و نام هاست (در صورت دردسترس بودن) خواهد بود.
تعداد بایت‌های داده پینگ ارسالی. حداقل اندازه (معمولاً ۱۲) فضای کافی برای داده‌هایی که fping برای کار خود نیاز دارد (شماره توالی، برچسب زمانی) را فراهم می‌کند. اندازه داده دریافتی گزارش‌شده شامل هدر IP (معمولاً ۲۰ بایت) و هدر ICMP (۸ بایت) است، بنابراین حداقل اندازه کل ۴۰ بایت است. مقدار پیش‌فرض ۵۶ است، مشابه ping. حداکثر مقدار، بیشینه نظری اندازه دیتاگرام IP یعنی (64K) است، هرچند بیشتر سیستم‌ها این مقدار را به عددی کوچکتری وابسته به سیستم محدود می‌کنند. نمی‌تواند همراه با --icmp-timestamp استفاده شود.
ضریب بازگشت (Backoff factor). در حالت پیش‌فرض، fping پیش از انصراف چندین درخواست به مقصد ارسال می‌کند و در هر درخواست متوالی مدت زمان بیشتری منتظر دریافت پاسخ می‌ماند. این پارامتر مقداری است که زمان انتظار ( -t ) در هر درخواست متوالی در آن ضرب می‌شود؛ مقدار باید به صورت عدد اعشاری (x.y) وارد شود. مقدار پیش‌فرض ۱.۵ است.
تعداد بسته‌های درخواست جهت ارسال به هر مقصد. در این حالت، برای هر پاسخ دریافتی یک خط نمایش داده می‌شود (این خروجی را می‌توان با -q یا -Q فرونشاند). همچنین آمار مربوط به پاسخ‌ها برای هر مقصد زمانی که تمام درخواست‌ها ارسال شدند (یا هنگام قطع اجرا) نمایش داده می‌شود. این گزینه اولویت بیشتری نسبت به -a یا -u دارد.
مشابه -c، اما آمار هر مقصد در قالبی مناسب برای جمع‌آوری خودکار آمارهای زمان پاسخگویی نمایش داده می‌شود. به عنوان مثال:
$ fping -C 5 -q somehost
somehost : 91.7 37.0 29.2 - 36.8

زمان پاسخگویی بر حسب میلی‌ثانیه برای هر یک از پنج درخواست نشان داده شده است، و علامت "-" نشان می‌دهد که پاسخی برای درخواست چهارم دریافت نشده است. این گزینه اولویت بیشتری نسبت به -a یا -u دارد.

دور ریختن پاسخ‌های Echo که مبدأ آن‌ها آدرسی متفاوت از آدرس مقصد مورد نظر است. این ویژگی مانع از گزارش نادرست دسترسی در سیستم‌های مانیتورینگ شلوغ می‌شود که در آن‌ها ممکن است دو نمونه fping با ۱۶ بیت پایین یکسان از شناسه پردازش (PID) به طور هم‌زمان در حال اجرا باشند.
استفاده از DNS برای جستجوی معکوس آدرس مقصد پینگ. به شما امکان می‌دهد فهرستی از آدرس‌های IP را به عنوان ورودی به fping بدهید و در خروجی نام‌های میزبان را چاپ کنید. این مشابه گزینه -n/--name است، اما حتی اگر نام میزبان را به عنوان مقصد وارد کنید، جستجوی معکوس DNS را اجبار می‌کند (NAME->IP->NAME).
افزودن برچسب‌های زمانی یونیکس به ابتدای خطوط خروجی تولید شده در حالت‌های حلقه یا شمارشی ( -l، -c یا -C).

زیرفرمان: --timestamp-format=ctime|iso|rfc3339

امکان تغییر قالب برچسب زمانی گزینه -D به قالب‌های زیر:

ctime = "%c" (مثال: Mon Jun 10 07:50:00 2024)

iso = "%Y-%m-%dT%T%z" (مثال: 2024-06-10T07:50:00+0200)

rfc3339 = "%Y-%m-%d %H:%M:%S" (مثال: 2024-06-10 07:50:00)

نمایش زمان سپری‌شده (رفت و برگشت یا RTT) بسته‌ها.
خواندن فهرست مقاصد از یک فایل.
تولید فهرست مقاصد بر اساس یک نت‌ماسک IP ارائه‌شده، یا یک آدرس IP شروع و پایان. نت‌ماسک یا شروع/پایان را در بخش مقاصد خط فرمان مشخص کنید. اگر یک شبکه IPv4 با نت‌ماسک مشخص شده باشد، آدرس شبکه و آدرس پخش همگانی (Broadcast) مستثنی خواهند شد.

مثال: برای پینگ شبکه 192.168.1.0/24 خط فرمان مشخص‌شده می‌تواند به یکی از دو صورت زیر باشد:

$ fping -g 192.168.1.0/24

یا

$ fping -g 192.168.1.1 192.168.1.254
چاپ پیام راهنما.
تنظیم فیلد TTL در بسته IP (تعداد گام‌های طول عمر).
نمایش مقدار TTL بسته IPv4 از هدر IP در خروجی. اگر fping نتواند مقدار TTL را بخواند، "(TTL unknown)" بازگردانده می‌شود.
حداقل زمان (به میلی‌ثانیه) بین ارسال هر بسته پینگ به هر مقصدی (پیش‌فرض ۱۰ است، حداقل ۰ است؛ ۱ برای کاربران غیر ریشه اگر fping با "--enable-safe-limits" پیکربندی شده باشد).
تنظیم رابط شبکه (نیازمند پشتیبانی از SO_BINDTODEVICE).
ارسال درخواست‌های برچسب زمانی ICMP (نوع ۱۳ پروتکل ICMP) به جای درخواست‌های Echo. چاپ برچسب‌های زمانی مبدأ، دریافت و ارسال ICMP به همراه زمان دریافت محلی با همان قالب، علاوه بر خروجی عادی. نمی‌تواند همراه با -b استفاده شود زیرا پیام‌های برچسب زمانی ICMP اندازه ثابتی دارند. تنها مختص IPv4 بوده و نیازمند دسترسی ریشه یا مجوز cap_net_raw است.
قالب‌بندی خروجی به صورت JSON (استفاده از -c، -C یا -l الزامی است).

نمونه استفاده:

$ fping -J -c 1 127.0.0.1

یا

$ fping -J -s -c 1 -q 127.0.0.1
تنظیم FWMARK روی بسته‌های پینگ برای مسیریابی مبتنی بر سیاست. نیازمند کرنل لینوکس نسخه 2.6.25 به بالا و دسترسی ریشه یا مجوز cap_net_admin است.
ارسال نامحدود بسته‌ها به هر مقصد به صورت حلقه. می‌توان با Ctrl-C متوقف کرد؛ سپس آمار مربوط به پاسخ‌ها برای هر مقصد نمایش داده می‌شود.
ارسال پینگ به تک‌تک آدرس‌های IP چندگانه یک میزبان مقصد (استفاده از گزینه -A توصیه می‌شود).
تنظیم بیت "نشکستن بسته" (Don't Fragment) در هدر IP (برای بررسی یا آزمایش MTU استفاده می‌شود).
اگر مقاصد به عنوان آدرس‌های IP مشخص شده باشند، روی آن‌ها جستجوی معکوس DNS انجام می‌دهد تا نام‌های میزبان در خروجی چاپ شوند.
قالب‌بندی خروجی برای سامانه netdata (گزینه‌های -l و -Q الزامی هستند). پیوند: https://netdata.cloud
محاسبه "زمان قطعی" بر اساس تعداد پینگ‌های از دست رفته و بازه زمانی استفاده‌شده (کاربردی برای آزمایش‌های همگرایی شبکه).
تنظیم فلگ نوع سرویس (TOS). مقدار N می‌تواند در قالب ده‌دهی یا هگزادسیمال (0xh) باشد.
نمایش مقدار TOS در خروجی. اگر fping نتواند مقدار TOS را بخواند، "(TOS unknown)" بازگردانده می‌شود.
در حالت‌های تکرار مداوم یا شمارشی ( -l، -c یا -C)، این پارامتر زمان به میلی‌ثانیه را تعیین می‌کند که fping بین بسته‌های متوالی به یک مقصد مشخص منتظر می‌ماند. پیش‌فرض ۱۰۰۰ و حداقل ۰.۰۰۱ است (۱۰ برای کاربران غیر ریشه اگر fping با "--enable-safe-limits" پیکربندی شده باشد).
حالت بی‌صدا. عدم نمایش نتایج هر پینگ و تنها نمایش خلاصه نهایی. همچنین پیام‌های خطای ICMP را نمایش نمی‌دهد.
مشابه -q، اما علاوه بر آن نتایج خلاصه دوره‌ای را هر SECS ثانیه نشان می‌دهد. همراه با cumulative، نتایج خلاصه از زمان شروع را به جای بازه اخیر نمایش می‌دهد، مگر اینکه گزینه -N نیز استفاده شده باشد.
محدودیت بازآزمایی (پیش‌فرض ۳). تعداد دفعاتی که تلاش برای پینگ یک مقصد، بدون احتساب تلاش اول، انجام خواهد شد.
تولید بایت‌های تصادفی به جای استفاده از بایت‌های سراسر صفر در داده‌های بسته. برای خنثی‌سازی مواردی مانند فشرده‌سازی پیوند داده کاربرد دارد.
چاپ آمار تجمیعی هنگام خروج.
تنظیم آدرس مبدأ.
مهلت زمانی برای نگاشت شماره‌های توالی بر حسب میلی‌ثانیه. شماره‌های توالی می‌توانند پس از این مهلت مجدداً استفاده شوند. مقدار پیش‌فرض 10000ms است.
مهلت زمانی اولیه مقصد بر حسب میلی‌ثانیه. در حالت پیش‌فرض و غیرحلقه‌ای، مهلت زمانی پیش‌فرض 500ms است و نمایانگر مدت زمانی است که fping برای دریافت پاسخ نخستین درخواست خود منتظر می‌ماند. مهلت‌های زمانی متوالی در ضریب بازگشت مشخص‌شده با -B ضرب می‌شوند.

در حالت حلقه/شمارش، مهلت زمانی پیش‌فرض به طور خودکار با مقدار "period" مطابقت داده می‌شود (اما نه بیش از 2000ms). همچنان می‌توانید مهلت زمانی را با این گزینه تنظیم کنید، اما توجه داشته باشید تعیین مقداری بزرگتر از "period" خروجی ناپایداری ایجاد می‌کند، زیرا مهلت زمانی فقط برای آخرین پینگ می‌تواند اعمال شود.

همچنین توجه داشته باشید هر پاسخ دریافتی که بیشتر از مهلت زمانی باشد، دور ریخته خواهد شد.

نادیده گرفته می‌شود (جهت سازگاری با نسخه fping 2.4).
نمایش مقاصد دسترس‌ناپذیر. (گزینه‌های -c و -C رفتار -u را نادیده می‌گیرند.)
چاپ اطلاعات نسخه fping.
با دریافت فهرستی از میزبان‌ها، بررسی می‌کند که آیا تعداد میزبان‌های دسترس‌پذیر >= N است یا خیر و در این صورت با وضعیت موفقیت (True) خارج می‌شود.
با دریافت فهرستی از میزبان‌ها، به محض اینکه N میزبان زنده پیدا شد بلافاصله با وضعیت موفقیت (True) خارج می‌شود.

ارسال ۲۰ پینگ به دو میزبان در حدود ۱ ثانیه (یعنی هر ۵۰ میلی‌ثانیه یک پینگ به هر میزبان)، و گزارش RTT هر پینگ در پایان:

$ fping --quiet --interval=1 --vcount=20 --period=50 127.0.0.1 127.0.0.2

  • Roland J. Schemers III, دانشگاه استنفورد، مفهوم اولیه و نگارش‌های 1.x
  • RL "Bob" Morgan, دانشگاه استنفورد، نگارش‌های 2.x
  • David Papp, نگارش‌های 2.3x به بالا
  • David Schweikert, نگارش‌های 3.0 به بالا

وبگاه fping: http://www.fping.org

وضعیت خروج در صورتی که تمام میزبان‌ها (یا تعداد میزبان‌های تعیین‌شده با -x یا -X) در دسترس باشند ۰ است، اگر برخی از میزبان‌ها (یا تعداد زیادی همراه با -x یا -X) دسترس‌ناپذیر باشند ۱، در صورت پیدا نشدن هر یک از آدرس‌های IP برابر با ۲، برای آرگومان‌های نامعتبر خط فرمان ۳، و در صورت شکست فراخوانی سیستمی ۴ خواهد بود.

تعداد آدرس‌هایی که با گزینه -g, --generate می‌توان تولید کرد به ۱۳۱۰۷۲ محدود است (تعداد آدرس‌های میزبان در یک پیشوند ۱۱۱ بیتی IPv6، دو آدرس بیشتر از آدرس‌های میزبان در یک پیشوند ۱۵ بیتی IPv4).

طول نام‌های مقاصد خوانده‌شده از فایل یا ورودی استاندارد به ۲۵۵ بایت محدود است.

حداقل بازه زمانی برای ارسال بسته‌های متوالی به یک مقصد مشخص با گزینه -p n برابر ۰.۰۰۱ میلی‌ثانیه است.

اگر fping با "--enable-safe-limits" پیکربندی شده باشد، مقادیر زیر برای کاربران غیر ریشه مجاز نیستند:

  • -i n، به طوری که n < 1 msec
  • -p n، به طوری که n < 10 msec

ping(8)

2025-12-31 fping