NPING(1) راهنمای مرجع Nping NPING(1)

nping - ابزار تولید بسته‌های شبکه و ابزار سنجش ارتباط (ping)

nping [گزینه‌ها] {هدف‌ها}

برنامهٔ Nping یک ابزار متن‌باز برای تولید بسته‌های شبکه، تحلیل پاسخ و اندازه‌گیری زمان پاسخ است. Nping به کاربران اجازه می‌دهد بسته‌های شبکه را با طیف گسترده‌ای از پروتکل‌ها تولید کنند و تقریباً هر فیلدی از سرایندهای پروتکل را تنظیم نمایند. در حالی که Nping می‌تواند به عنوان یک ابزار سادهٔ ping برای تشخیص میزبان‌های فعال به کار رود، می‌تواند به عنوان یک تولیدکنندهٔ بستهٔ خام برای آزمون‌های تنش و بارگذاری پشتهٔ شبکه، مسموم‌سازی ARP (ARP poisoning)، حملات محروم‌سازی از سرویس (Denial of Service)، ردیابی مسیر و اهداف دیگر نیز استفاده شود.

علاوه بر این، Nping حالت عملکرد ویژه‌ای به نام «حالت پژواک» (Echo Mode) ارائه می‌دهد که به کاربران امکان می‌دهد چگونگی تغییر کاوشگرهای تولیدشده را در حین انتقال مشاهده کرده و تفاوت‌های میان بسته‌های ارسالی و بسته‌های دریافتی در سمت دیگر را آشکار سازند. برای جزئیات به بخش «Echo Mode» مراجعه کنید.

خروجی Nping فهرستی از بسته‌هایی است که ارسال و دریافت می‌شوند. میزان جزئیات به گزینه‌های استفاده‌شده بستگی دارد.

یک نمونهٔ معمول از اجرای Nping در مثال ۱ نشان داده شده است. تنها آرگومان‌های Nping که در این مثال استفاده شده‌اند عبارتند از -c، برای مشخص کردن تعداد دفعات هدف‌گیری هر میزبان، --tcp برای مشخص کردن حالت کاوش TCP، -p 80,433 برای تعیین درگاه‌های هدف؛ و سپس نام دو میزبان هدف.

مثال ۱. یک اجرای نمونه از Nping

# nping -c 1 --tcp -p 80,433 scanme.nmap.org google.com
Starting Nping ( https://nmap.org/nping )
SENT (0.0120s) TCP 96.16.226.135:50091 > 64.13.134.52:80 S ttl=64 id=52072 iplen=40  seq=1077657388 win=1480 
RCVD (0.1810s) TCP 64.13.134.52:80 > 96.16.226.135:50091 SA ttl=53 id=0 iplen=44  seq=4158134847 win=5840 <mss 1460>
SENT (1.0140s) TCP 96.16.226.135:50091 > 74.125.45.100:80 S ttl=64 id=13932 iplen=40  seq=1077657388 win=1480 
RCVD (1.1370s) TCP 74.125.45.100:80 > 96.16.226.135:50091 SA ttl=52 id=52913 iplen=44  seq=2650443864 win=5720 <mss 1430>
SENT (2.0140s) TCP 96.16.226.135:50091 > 64.13.134.52:433 S ttl=64 id=8373 iplen=40  seq=1077657388 win=1480 
SENT (3.0140s) TCP 96.16.226.135:50091 > 74.125.45.100:433 S ttl=64 id=23624 iplen=40  seq=1077657388 win=1480 
Statistics for host scanme.nmap.org (64.13.134.52):
 |  Probes Sent: 2 | Rcvd: 1 | Lost: 1  (50.00%)
 |_ Max rtt: 169.720ms | Min rtt: 169.720ms | Avg rtt: 169.720ms
Statistics for host google.com (74.125.45.100):
 |  Probes Sent: 2 | Rcvd: 1 | Lost: 1  (50.00%)
 |_ Max rtt: 122.686ms | Min rtt: 122.686ms | Avg rtt: 122.686ms
Raw packets sent: 4 (160B) | Rcvd: 2 (92B) | Lost: 2 (50.00%)
Tx time: 3.00296s | Tx bytes/s: 53.28 | Tx pkts/s: 1.33
Rx time: 3.00296s | Rx bytes/s: 30.64 | Rx pkts/s: 0.67
Nping done: 2 IP addresses pinged in 4.01 seconds

جدیدترین نسخهٔ Nping را می‌توان همراه با Nmap از https://nmap.org دریافت کرد. جدیدترین نسخهٔ این صفحهٔ راهنما در https://nmap.org/book/nping-man.html در دسترس است.

این خلاصهٔ گزینه‌ها هنگامی که Nping بدون هیچ آرگومانی اجرا شود چاپ می‌شود. این بخش به یادآوری رایج‌ترین گزینه‌ها کمک می‌کند، اما جایگزینی برای مستندات جامع در ادامهٔ این کتابچهٔ راهنما نیست. برخی گزینه‌های کم‌کاربرد حتی در اینجا گنجانده نشده‌اند.

Nping 0.7.92SVN ( https://nmap.org/nping )
Usage: nping [Probe mode] [Options] {target specification}
TARGET SPECIFICATION:
  Targets may be specified as hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.*.1-24
PROBE MODES:
  --tcp-connect                    : Unprivileged TCP connect probe mode.
  --tcp                            : TCP probe mode.
  --udp                            : UDP probe mode.
  --icmp                           : ICMP probe mode.
  --arp                            : ARP/RARP probe mode.
  --tr, --traceroute               : Traceroute mode (can only be used with 
                                     TCP/UDP/ICMP modes).
TCP CONNECT MODE:
   -p, --dest-port <port spec>     : Set destination port(s).
   -g, --source-port <portnumber>  : Try to use a custom source port.
TCP PROBE MODE:
   -g, --source-port <portnumber>  : Set source port.
   -p, --dest-port <port spec>     : Set destination port(s).
   --seq <seqnumber>               : Set sequence number.
   --flags <flag list>             : Set TCP flags (ACK,PSH,RST,SYN,FIN...)
   --ack <acknumber>               : Set ACK number.
   --win <size>                    : Set window size.
   --badsum                        : Use a random invalid checksum. 
UDP PROBE MODE:
   -g, --source-port <portnumber>  : Set source port.
   -p, --dest-port <port spec>     : Set destination port(s).
   --badsum                        : Use a random invalid checksum. 
ICMP PROBE MODE:
  --icmp-type <type>               : ICMP type.
  --icmp-code <code>               : ICMP code.
  --icmp-id <id>                   : Set identifier.
  --icmp-seq <n>                   : Set sequence number.
  --icmp-redirect-addr <addr>      : Set redirect address.
  --icmp-param-pointer <pnt>       : Set parameter problem pointer.
  --icmp-advert-lifetime <time>    : Set router advertisement lifetime.
  --icmp-advert-entry <IP,pref>    : Add router advertisement entry.
  --icmp-orig-time  <timestamp>    : Set originate timestamp.
  --icmp-recv-time  <timestamp>    : Set receive timestamp.
  --icmp-trans-time <timestamp>    : Set transmit timestamp.
ARP/RARP PROBE MODE:
  --arp-type <type>                : Type: ARP, ARP-reply, RARP, RARP-reply.
  --arp-sender-mac <mac>           : Set sender MAC address.
  --arp-sender-ip  <addr>          : Set sender IP address.
  --arp-target-mac <mac>           : Set target MAC address.
  --arp-target-ip  <addr>          : Set target IP address.
IPv4 OPTIONS:
  -S, --source-ip                  : Set source IP address.
  --dest-ip <addr>                 : Set destination IP address (used as an 
                                     alternative to {target specification} ). 
  --tos <tos>                      : Set type of service field (8bits).
  --id  <id>                       : Set identification field (16 bits).
  --df                             : Set Don't Fragment flag.
  --mf                             : Set More Fragments flag.
  --evil                           : Set Reserved / Evil flag.
  --ttl <hops>                     : Set time to live [0-255].
  --badsum-ip                      : Use a random invalid checksum. 
  --ip-options <S|R [route]|L [route]|T|U ...> : Set IP options
  --ip-options <hex string>                    : Set IP options
  --mtu <size>                     : Set MTU. Packets get fragmented if MTU is
                                     small enough.
IPv6 OPTIONS:
  -6, --IPv6                       : Use IP version 6.
  --dest-ip                        : Set destination IP address (used as an
                                     alternative to {target specification}).
  --hop-limit                      : Set hop limit (same as IPv4 TTL).
  --traffic-class <class> :        : Set traffic class.
  --flow <label>                   : Set flow label.
ETHERNET OPTIONS:
  --dest-mac <mac>                 : Set destination mac address. (Disables
                                     ARP resolution)
  --source-mac <mac>               : Set source MAC address.
  --ether-type <type>              : Set EtherType value.
PAYLOAD OPTIONS:
  --data <hex string>              : Include a custom payload.
  --data-string <text>             : Include a custom ASCII text.
  --data-length <len>              : Include len random bytes as payload.
ECHO CLIENT/SERVER:
  --echo-client <passphrase>       : Run Nping in client mode.
  --echo-server <passphrase>       : Run Nping in server mode.
  --echo-port <port>               : Use custom <port> to listen or connect.
  --no-crypto                      : Disable encryption and authentication.
  --once                           : Stop the server after one connection.
  --safe-payloads                  : Erase application data in echoed packets.
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m, 0.25h).
  --delay <time>                   : Adjust delay between probes.
  --rate  <rate>                   : Send num packets per second.
MISC:
  -h, --help                       : Display help information.
  -V, --version                    : Display current version number. 
  -c, --count <n>                  : Stop after <n> rounds.
  -e, --interface <name>           : Use supplied network interface.
  -H, --hide-sent                  : Do not display sent packets.
  -N, --no-capture                 : Do not try to capture replies.
  --privileged                     : Assume user is fully privileged.
  --unprivileged                   : Assume user lacks raw socket privileges.
  --send-eth                       : Send packets at the raw Ethernet layer.
  --send-ip                        : Send packets using raw IP sockets.
  --bpf-filter <filter spec>       : Specify custom BPF filter.
OUTPUT:
  -v                               : Increment verbosity level by one.
  -v[level]                        : Set verbosity level. E.g: -v4
  -d                               : Increment debugging level by one.
  -d[level]                        : Set debugging level. E.g: -d3
  -q                               : Decrease verbosity level by one.
  -q[N]                            : Decrease verbosity level N times
  --quiet                          : Set verbosity and debug level to minimum.
  --debug                          : Set verbosity and debug to the max level.
EXAMPLES:
  nping scanme.nmap.org
  nping --tcp -p 80 --flags rst --ttl 2 192.168.1.1
  nping --icmp --icmp-type time --delay 500ms 192.168.254.254
  nping --echo-server "public" -e wlan0 -vvv 
  nping --echo-client "public" echo.nmap.org --tcp -p1-1024 --flags ack
SEE THE MAN PAGE FOR MANY MORE OPTIONS, DESCRIPTIONS, AND EXAMPLES

هر چیزی در خط فرمان Nping که یک گزینه یا آرگومانِ گزینه نباشد، به عنوان مشخصات میزبان هدف در نظر گرفته می‌شود. Nping از همان ساختار نحوی Nmap برای مشخص کردن هدف استفاده می‌کند. ساده‌ترین حالت، یک هدف منفرد است که با آدرس IP یا نام میزبان (hostname) مشخص می‌شود.

Nping از آدرس‌دهی به شیوهٔ CIDR پشتیبانی می‌کند. می‌توانید /numbits را به یک آدرس IPv4 یا نام میزبان اضافه کنید و Nping به هر آدرس IP که numbits بیت نخست آن با IP مرجع یا نام میزبان داده‌شده یکسان باشد، کاوشگر (probe) ارسال خواهد کرد. برای نمونه، 192.168.10.0/24 کاوشگرها را به ۲۵۶ میزبان از 192.168.10.0 (دودویی: 11000000 10101000 00001010 00000000) تا 192.168.10.255 (دودویی: 11000000 10101000 00001010 11111111)، شامل هر دو، ارسال می‌کند. 192.168.10.40/24 دقیقاً همین اهداف را پینگ می‌کند. با توجه به اینکه میزبان scanme.nmap.org روی آدرس IP به نشانی 64.13.134.52 قرار دارد، مشخصهٔ scanme.nmap.org/16 کاوشگرها را به ۶۵٬۵۳۶ آدرس IP میان 64.13.0.0 و 64.13.255.255 ارسال خواهد کرد. کوچک‌ترین مقدار مجاز، /0 است که کل اینترنت را هدف قرار می‌دهد. بزرگ‌ترین مقدار، /32 است که تنها میزبان نام‌برده یا آدرس IP مشخص‌شده را هدف قرار می‌دهد، چرا که تمام بیت‌های آدرس ثابت هستند.

نشانه‌گذاری CIDR کوتاه است اما همیشه به‌اندازهٔ کافی انعطاف‌پذیر نیست. برای نمونه، شاید بخواهید کاوشگرها را به 192.168.0.0/16 بفرستید اما از هر IP که با .0 یا .255 ختم می‌شود صرف‌نظر کنید، زیرا ممکن است به عنوان آدرس‌های شبکه و پخشیِ زیرشبکه استفاده شوند. Nping با استفاده از آدرس‌دهی بازهٔ هشت‌بیتی (octet range) از این کار پشتیبانی می‌کند. به جای مشخص کردن یک آدرس IP معمولی، می‌توانید فهرستی از اعداد یا بازه‌های جداشده با کاما را برای هر هشت‌بیت مشخص کنید. برای نمونه، 192.168.0-255.1-254 از تمامی آدرس‌های موجود در بازه که به .0 یا .255 ختم می‌شوند صرف‌نظر می‌کند، و 192.168.3-5,7.1 چهار آدرس 192.168.3.1، 192.168.4.1، 192.168.5.1 و 192.168.7.1 را هدف قرار می‌دهد. هر یک از دو طرف یک بازه می‌تواند حذف شود؛ مقادیر پیش‌فرض در سمت چپ 0 و در سمت راست 255 است. استفاده از - به تنهایی همانند 0-255 است، اما به یاد داشته باشید که در هشت‌بیت نخست از 0- استفاده کنید تا مشخصهٔ هدف شبیه به یک گزینهٔ خط فرمان به نظر نرسد. بازه‌ها نیازی نیست محدود به هشت‌بیت‌های پایانی باشند: مشخصهٔ 0-.-.13.37 کاوشگرها را به تمامی آدرس‌های IP در اینترنت که به .13.37 ختم می‌شوند ارسال می‌کند. این گونه نمونه‌برداری گسترده می‌تواند برای پیمایش‌ها و پژوهش‌های اینترنتی سودمند باشد.

آدرس‌های IPv6 را فقط می‌توان با آدرس کامل IPv6 یا نام میزبان مشخص کرد. بازه‌های CIDR و بازه‌های هشت‌بیتی برای IPv6 پشتیبانی نمی‌شوند زیرا به ندرت مفید واقع می‌شوند.

دستور Nping چندین مشخصهٔ میزبان را در خط فرمان می‌پذیرد، و لزومی ندارد همگی از یک نوع باشند. دستور nping scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.- دقیقاً همان کاری را انجام می‌دهد که انتظار می‌رود.

ابزار Nping طوری طراحی شده که بسیار انعطاف‌پذیر باشد و نیازهای گوناگونی را برآورده سازد. همانند بیشتر ابزارهای خط فرمان، رفتار آن می‌تواند با گزینه‌های خط فرمان تنظیم شود. این اصول کلی بر آرگومان‌های گزینه‌ها اعمال می‌شوند، مگر اینکه خلاف آن ذکر شده باشد.

گزینه‌هایی که اعداد صحیح دریافت می‌کنند می‌توانند مقادیر را در مبنای ده‌دهی، هشت‌هشتی یا شانزده‌شانزدهی بپذیرند. هنگامی که یک عدد با 0x آغاز می‌شود، با آن به عنوان مبنای ۱۶ رفتار می‌شود؛ هنگامی که صرفاً با 0 آغاز می‌شود، به عنوان مبنای ۸ در نظر گرفته می‌شود. در غیر این صورت، Nping فرض می‌کند عدد در مبنای ۱۰ وارد شده است. تقریباً تمامی اعدادی که می‌توان از خط فرمان مشخص کرد بدون علامت هستند، بنابراین به عنوان یک قاعدهٔ کلی، کمترین مقدار صفر است. کاربران همچنین می‌توانند کلمهٔ random یا rand را وارد کنند تا Nping یک مقدار تصادفی در بازهٔ مورد انتظار تولید کند.

آدرس‌های IP می‌توانند به صورت آدرس‌های IPv4 (مانند 192.168.1.1)، آدرس‌های IPv6 (مانند 2001:db8:85a3::8e4c:760:7146)، یا نام‌های میزبان ارائه شوند که با استفاده از کارساز DNS پیش‌فرضِ پیکربندی‌شده در سیستم میزبان حل (resolve) خواهند شد.

گزینه‌هایی که آدرس MAC می‌پذیرند قالب معمول ۶ بایت شانزده‌شانزدهی جداشده با دو نقطه را قبول می‌کنند (مانند 00:50:56:d4:01:98). می‌توان به جای دو نقطه از خط پیوند نیز استفاده کرد (مانند 00-50-56-c0-00-08). کلمهٔ ویژهٔ random یا rand یک آدرس تصادفی تنظیم می‌کند و کلمهٔ broadcast یا bcast مقدار ff:ff:ff:ff:ff:ff را تنظیم می‌نماید.

برخلاف دیگر ابزارهای پینگ و تولید بسته، Nping از مشخص کردن چندین میزبان و پورت هدف پشتیبانی می‌کند. هرچند این قابلیت انعطاف‌پذیری فوق‌العاده‌ای به همراه دارد، اما چگونگی رفتار Nping در موقعیت‌هایی که بیش از یک میزبان و/یا بیش از یک پورت برای ارسال کاوشگر وجود دارد ممکن است بدیهی نباشد. این بخش رفتار Nping را در این حالت‌ها توضیح می‌دهد.

هنگامی که چندین میزبان هدف مشخص شده باشند، Nping به شیوهٔ نوبت‌گردشی (round-robin) میان آن‌ها جابه‌جا می‌شود. این کار به میزبان‌های کُند زمان بیشتری برای ارسال پاسخ‌هایشان پیش از ارسال کاوشگر بعدی می‌دهد. پورت‌ها نیز با استفاده از نوبت‌گردشی زمان‌بندی می‌شوند. بنابراین، مگر اینکه تنها یک پورت مشخص شده باشد، Nping هرگز دو کاوشگر را پشت سر هم به همان میزبان و پورتِ یکسان ارسال نمی‌کند.

حلقهٔ چرخش روی اهداف، “حلقهٔ درونی” و حلقهٔ چرخش روی پورت‌ها، “حلقهٔ بیرونی” است. برای یک پورت معین، به همهٔ اهداف یک کاوشگر ارسال می‌شود پیش از آنکه به پورت بعدی برود. میان ارسال هر دو کاوشگر، Nping مقدار زمان قابل تنظیمی را که “تأخیر میان‌کاوشگری” نام دارد، درنگ می‌کند؛ این زمان با گزینهٔ --delay کنترل می‌شود. این مثال‌ها نحوهٔ کارکرد آن را نشان می‌دهند.

# nping --tcp -c 2 1.1.1.1 -p 100-102
Starting Nping ( https://nmap.org/nping )
SENT (0.0210s) TCP 192.168.1.77 > 1.1.1.1:100
SENT (1.0230s) TCP 192.168.1.77 > 1.1.1.1:101
SENT (2.0250s) TCP 192.168.1.77 > 1.1.1.1:102
SENT (3.0280s) TCP 192.168.1.77 > 1.1.1.1:100
SENT (4.0300s) TCP 192.168.1.77 > 1.1.1.1:101
SENT (5.0320s) TCP 192.168.1.77 > 1.1.1.1:102
# nping --tcp -c 2 1.1.1.1 2.2.2.2 3.3.3.3 -p 8080
Starting Nping ( https://nmap.org/nping )
SENT (0.0230s) TCP 192.168.0.21 > 1.1.1.1:8080
SENT (1.0240s) TCP 192.168.0.21 > 2.2.2.2:8080
SENT (2.0260s) TCP 192.168.0.21 > 3.3.3.3:8080
SENT (3.0270s) TCP 192.168.0.21 > 1.1.1.1:8080
SENT (4.0290s) TCP 192.168.0.21 > 2.2.2.2:8080
SENT (5.0310s) TCP 192.168.0.21 > 3.3.3.3:8080
# nping --tcp -c 1 --delay 500ms 1.1.1.1 2.2.2.2 3.3.3.3 -p 137-139
Starting Nping ( https://nmap.org/nping )
SENT (0.0230s) TCP 192.168.0.21 > 1.1.1.1:137
SENT (0.5250s) TCP 192.168.0.21 > 2.2.2.2:137
SENT (1.0250s) TCP 192.168.0.21 > 3.3.3.3:137
SENT (1.5280s) TCP 192.168.0.21 > 1.1.1.1:138
SENT (2.0280s) TCP 192.168.0.21 > 2.2.2.2:138
SENT (2.5310s) TCP 192.168.0.21 > 3.3.3.3:138
SENT (3.0300s) TCP 192.168.0.21 > 1.1.1.1:139
SENT (3.5330s) TCP 192.168.0.21 > 2.2.2.2:139
SENT (4.0330s) TCP 192.168.0.21 > 3.3.3.3:139

ابزار Nping از طیف گسترده‌ای از پروتکل‌ها پشتیبانی می‌کند. اگرچه در برخی موارد Nping می‌تواند حالت را به‌طور خودکار از روی گزینه‌های استفاده‌شده تشخیص دهد، اما معمولاً بهتر است آن را به‌صورت صریح مشخص کنید.

--tcp-connect (حالت TCP Connect)

حالت TCP connect زمانی که کاربر دسترسی‌های بستهٔ خام (raw packet) را ندارد، حالت پیش‌فرض است. به‌جای نوشتن مستقیم بسته‌های خام مانند اغلب حالت‌های دیگر، Nping با فراخوانی فراخوان سیستمی connect از سیستم‌عامل زیرین می‌خواهد تا با ماشین و درگاه هدف اتصالی برقرار کند. این همان فراخوان سیستمی سطح بالایی است که مرورگرهای وب، کلاینت‌های P2P و بیشتر برنامه‌های تحت شبکه برای برقراری اتصال از آن استفاده می‌کنند. این فراخوان بخشی از رابط برنامه‌نویسی موسوم به Berkeley Sockets API است. ابزار Nping به‌جای خواندن پاسخ‌های بسته‌های خام از روی خط ارتباطی، از این API برای دریافت اطلاعات وضعیت در هر تلاش برای برقراری اتصال استفاده می‌کند. به همین دلیل، شما قادر به مشاهدهٔ محتویات بسته‌های ارسالی یا دریافتی نخواهید بود، بلکه صرفاً اطلاعات وضعیتی پیرامون برقراری اتصال TCP را مشاهده خواهید کرد.

--tcp (حالت TCP)

حالت TCP به کاربران امکان می‌دهد هر نوع بستهٔ TCP را بسازند و ارسال کنند. بسته‌های TCP به‌صورت تعبیه‌شده درون بسته‌های IP ارسال می‌شوند که خود بسته‌های IP نیز قابل تنظیم هستند. این حالت می‌تواند برای اهداف گوناگونی استفاده شود. برای نمونه، می‌توانید با ارسال پیام‌های TCP SYN بدون تکمیل مصافحهٔ سه‌مرحله‌ای (three-way handshake)، برای کشف درگاه‌های باز تلاش کنید. این روش معمولاً پویش نیمه‌باز (half-open scanning) نامیده می‌شود، چرا که شما یک اتصال TCP کامل را باز نمی‌کنید. شما یک بستهٔ SYN ارسال می‌کنید، گویی قصد باز کردن یک اتصال واقعی را دارید، و سپس منتظر پاسخ می‌مانید. دریافت SYN/ACK نشان‌دهندهٔ باز بودن درگاه است، در حالی که RST نشان می‌دهد درگاه بسته است. اگر پاسخی دریافت نشود، می‌توان نتیجه گرفت که یک دستگاه شبکه در مسیر، پاسخ‌ها را پالایش (فیلتر) می‌کند. کاربرد دیگر می‌تواند مشاهدهٔ رفتار پشتهٔ TCP/IP میزبان دوردست در هنگام دریافت بسته‌های ناسازگار با استاندارد RFC باشد؛ مانند بسته‌ای که هر دو پرچم SYN و RST در آن فعال باشند. همچنین می‌توان با ساخت بسته‌های RST سفارشی با استفاده از یک نشانی IP جعل‌شده (spoofed) و با هدف قطع یک اتصال TCP فعال، اقدام مخربی انجام داد.

--udp (حالت UDP)

حالت UDP می‌تواند دو رفتار متفاوت داشته باشد. در شرایط عادی، به کاربران اجازه می‌دهد بسته‌های سفارشی IP/UDP بسازند. اما اگر Nping توسط کاربری بدون دسترسی‌های بستهٔ خام اجرا شود و هیچ تغییری در سرایندهای پیش‌فرض پروتکل درخواست نشده باشد، Nping وارد حالت UDP فاقد امتیاز می‌شود که اساساً بسته‌های UDP را با استفاده از فراخوان سیستمی sendto به میزبان‌ها و درگاه‌های هدف تعیین‌شده ارسال می‌کند. توجه داشته باشید که در این حالت فاقد امتیاز، مشاهدهٔ اطلاعات سطح پایین سرآیند بسته‌ها بر روی خط ارتباطی امکان‌پذیر نیست و فقط اطلاعات وضعیتی دربارهٔ میزان بایت‌های ارسال و دریافت‌شده ارائه می‌شود. حالت UDP می‌تواند برای تعامل با هر سرور مبتنی بر UDP استفاده شود؛ مانند سرورهای DNS، سرورهای پخش رسانه (streaming)، سرورهای بازی‌های برخط و دیمن‌های کوبیدن درگاه/احراز هویت تک‌بسته‌ای (port knocking/single-packet authorization).

--icmp (حالت ICMP)

حالت ICMP حالت پیش‌فرض در زمانی است که کاربر Nping را با دسترسی‌های بستهٔ خام اجرا می‌کند. در این حالت هر نوع پیام ICMP را می‌توان تولید کرد. نوع پیش‌فرض ICMP پیام Echo یا همان ping است. حالت ICMP می‌تواند برای اهداف مختلفی استفاده شود؛ از یک درخواست ساده برای برچسب زمانی (timestamp) یا ماسک شبکه (netmask) گرفته تا ارسال پیام‌های جعلی مقصد غیرقابل دسترس (destination unreachable)، تغییر مسیرهای سفارشی (redirects) و اعلانات مسیریاب (router advertisements).

--arp (حالت ARP/RARP)

گزینهٔ ARP به شما امکان می‌دهد چندین بستهٔ مختلف مرتبط با ARP را بسازید و ارسال کنید. این موارد شامل درخواست‌ها و پاسخ‌های ARP، RARP، DRARP و InARP است. این حالت می‌تواند برای انجام کشف میزبان در سطح پایین و پیاده‌سازی حملات مسموم‌سازی حافظهٔ موقت ARP (ARP-cache poisoning) استفاده شود.

--traceroute (حالت Traceroute)

حالت ردیابی مسیر (Traceroute) به‌خودی‌خود یک حالت مستقل نیست، بلکه مکملی برای حالت‌های TCP، UDP و ICMP است. هنگامی که این گزینه مشخص شود، Nping مقدار IP TTL نخستین کاوشگر را برابر با ۱ قرار می‌دهد. زمانی که مسیریاب بعدی بسته را دریافت می‌کند، به دلیل منقضی شدن مقدار TTL آن را دور انداخته و یک پیام ICMP destination unreachable تولید می‌کند. کاوشگر بعدی مقدار TTL برابر با ۲ خواهد داشت، بنابراین نخستین مسیریاب بسته را هدایت کرده و این بار دومین مسیریاب بسته را دور انداخته و پیام ICMP تولید می‌کند. سومین کاوشگر دارای مقدار TTL برابر با ۳ خواهد بود و این روند ادامه می‌یابد. با بررسی نشانی‌های مبدأ تمامی آن پیام‌های ICMP Destination Unreachable، می‌توان مسیری را که کاوشگرها تا رسیدن به مقصد نهایی طی می‌کنند تعیین کرد.

-p port_spec، --dest-port port_spec (درگاه‌های هدف)

این گزینه مشخص می‌کند که قصد دارید برای اتصال به کدام درگاه‌ها تلاش کنید. این مقدار می‌تواند یک درگاه منفرد، فهرستی از درگاه‌ها با ویرگول (مانند 80,443,8080)، یک بازه (مانند 1-1023) یا هر ترکیبی از آن‌ها باشد (مانند 21-25,80,443,1024-2048). مقادیر آغاز و/یا پایان یک بازه می‌توانند حذف شوند که باعث می‌شود Nping به‌ترتیب از مقادیر ۱ و ۶۵۵۳۵ استفاده کند. بنابراین می‌توانید برای هدف قرار دادن درگاه‌های ۱ تا ۶۵۵۳۵ مقدار -p- را مشخص کنید. استفاده از درگاه صفر در صورتی که به‌طور صریح مشخص شود مجاز است.

-g portnumber، --source-port portnumber (جعل درگاه مبدأ)

این گزینه از Nping می‌خواهد تا از درگاه مشخص‌شده به‌عنوان درگاه مبدأ برای اتصالات TCP استفاده کند. توجه داشته باشید که این گزینه ممکن است روی همهٔ سیستم‌ها کار نکند یا نیازمند دسترسی‌های ریشه (root) باشد. مقدار مشخص‌شده باید یک عدد صحیح در بازهٔ [0–65535] باشد.

-p port_spec، --dest-port port_spec (درگاه‌های هدف)

این گزینه درگاه‌های مقصدی را که می‌خواهید کاوشگرها را به آن‌ها ارسال کنید مشخص می‌کند. مقدار آن می‌تواند یک درگاه منفرد، فهرستی از درگاه‌ها جداشده با ویرگول (مانند 80,443,8080)، یک بازه (مانند 1-1023) یا هر ترکیبی از آن‌ها باشد (مانند 21-25,80,443,1024-2048). مقادیر ابتدا و/یا انتهای یک بازه می‌توانند حذف شوند که در این صورت Nping به‌ترتیب از ۱ و ۶۵۵۳۵ استفاده خواهد کرد. بنابراین می‌توانید از -p- برای هدف قرار دادن درگاه‌های ۱ تا ۶۵۵۳۵ استفاده کنید. استفاده از درگاه صفر نیز در صورت تعیین صریح مجاز است.

-g portnumber، --source-port portnumber (جعل درگاه مبدأ)

این گزینه از Nping می‌خواهد تا از درگاه تعیین‌شده به‌عنوان درگاه مبدأ برای اتصالات TCP استفاده کند. توجه داشته باشید که این قابلیت ممکن است در تمامی سیستم‌ها کار نکند یا به دسترسی‌های ریشه (root) نیاز داشته باشد. مقدار ارائه‌شده باید یک عدد صحیح در بازهٔ [0–65535] باشد.

--seq seqnumber (شماره توالی)

شماره توالی TCP را مشخص می‌کند. در بسته‌های SYN، این مقدار همان شماره توالی اولیه (ISN) است. در یک انتقال دادهٔ عادی، این مقدار با شماره توالی نخستین بایت داده در قطعه (segment) همخوانی دارد. seqnumber باید عددی در بازهٔ [0–4294967295] باشد.

--flags flags (پرچم‌های TCP)

این گزینه مشخص می‌کند که چه پرچم‌هایی باید در بستهٔ TCP تنظیم شوند. flags می‌تواند به سه روش مختلف تعیین شود:
1.به‌صورت فهرستی از پرچم‌ها که با ویرگول از هم جدا شده‌اند؛ مانند --flags syn,ack,rst
2.به‌صورت فهرستی از حروف اول یک‌نویسه‌ای پرچم‌ها؛ مانند --flags SAR که به Nping دستور می‌دهد پرچم‌های SYN، ACK و RST را تنظیم کند.
3.به‌صورت یک عدد هگزادسیمال ۸ بیتی، که در آن مقدار واردشده دقیقاً همان مقداری است که در فیلد پرچم‌های سرآیند TCP قرار می‌گیرد. این مقدار باید با پیشوند 0x آغاز شده و در بازهٔ [0x00–0xFF] باشد؛ برای نمونه --flags 0x20 پرچم URG را تنظیم می‌کند، زیرا 0x20 معادل با مقدار باینری 00100000 بوده و پرچم URG با بیت سوم نشان داده می‌شود.

۸ پرچم ممکن برای تنظیم وجود دارد: CWR، ECN، URG، ACK، PSH، RST، SYN و FIN. مقدار ویژهٔ ALL به معنای تنظیم تمام پرچم‌ها است. NONE به معنای فعال نکردن هیچ پرچمی است. توجه به این نکته ضروری است که اگر مایل نیستید هیچ پرچمی تنظیم شود، باید آن را به‌طور صریح مشخص کنید؛ زیرا در برخی موارد پرچم SYN ممکن است به‌صورت پیش‌فرض تنظیم گردد. در ادامه شرح کوتاهی از مفهوم هر پرچم آمده است:

CWR (کاهش پنجرهٔ ازدحام)

توسط فرستنده‌ای با توانایی ECN، هنگامی که پنجرهٔ ازدحام خود را (به دلیل انقضای مهلت بازفرست، بازفرست سریع، یا در پاسخ به یک اعلان ECN) کاهش می‌دهد، تنظیم می‌شود.

ECN (اعلان صریح ازدحام)

در طول مصافحهٔ سه‌مرحله‌ای نشان می‌دهد فرستنده توانایی انجام اعلان صریح ازدحام را دارد. در شرایط عادی نشان می‌دهد بسته‌ای با پرچم IP Congestion Experienced در طول انتقال عادی دریافت شده است. برای اطلاعات بیشتر به RFC 3168 مراجعه کنید.

URG (اضطراری)

قطعه اضطراری است و فیلد اشاره‌گر اضطراری (urgent pointer) حامل اطلاعات معتبر است.

ACK (تصدیق)

قطعه حامل یک تصدیق بوده و مقدار فیلد شمارهٔ تصدیق معتبر است و شماره توالی بعدی مورد انتظار از گیرنده را در بر دارد.

PSH (ارسال فوری)

داده‌های موجود در این قطعه باید بلافاصله پس از رسیدن، به لایهٔ کاربرد تحویل داده شوند (push شوند).

RST (راه‌اندازی مجدد / بازنشانی)

مشکلی رخ داده است و فرستنده می‌خواهد اتصال را لغو و متوقف کند.

SYN (همگام‌سازی)

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

FIN (پایان)

فرستنده می‌خواهد اتصال را ببندد.

--win size (اندازهٔ پنجره)

اندازهٔ پنجرهٔ TCP را مشخص می‌کند؛ یعنی تعداد بایت‌هایی که فرستندهٔ قطعه تمایل دارد در یک نوبت از گیرنده بپذیرد. این مقدار معمولاً اندازهٔ بافر دریافتی است که سیستم‌عامل به یک اتصال معین اختصاص می‌دهد. size باید عددی در بازهٔ [0–65535] باشد.

--badsum (مجموع مقابله‌ای نامعتبر)

از Nping می‌خواهد تا برای بسته‌های ارسالی به میزبان‌های هدف از یک مجموع مقابله‌ای (checksum) نامعتبر TCP استفاده کند. از آنجا که تقریباً تمامی پشته‌های IP میزبان‌ها این بسته‌ها را به‌درستی دور می‌اندازند، هر پاسخی که دریافت شود احتمالاً از سوی یک دیوار آتش یا یک سیستم تشخیص نفوذ (IDS) است که زحمت اعتبارسنجی مجموع مقابله‌ای را به خود نداده است. برای جزئیات بیشتر پیرامون این روش، ببینید: https://nmap.org/p60-12.html.

-p port_spec, --dest-port port_spec (درگاه‌های هدف)

این گزینه مشخص می‌کند که قصد دارید دیتاگرام‌های UDP به کدام درگاه‌ها ارسال شوند. این مقدار می‌تواند یک درگاه منفرد، فهرستی از درگاه‌ها که با کاما از هم جدا شده‌اند (مانند 80,443,8080)، یک محدوده (مانند 1-1023) و هر ترکیبی از آن‌ها (مانند 21-25,80,443,1024-2048) باشد. مقادیر آغاز و/یا پایان یک محدوده را می‌توان حذف کرد که در این حالت Nping به‌ترتیب از 1 و 65535 استفاده می‌کند. بنابراین می‌توانید -p- را برای هدف‌گیری درگاه‌های 1 تا 65535 مشخص کنید. استفاده از درگاه صفر نیز در صورتی که صراحتاً مشخص شود، مجاز است.

-g portnumber, --source-port portnumber (جعل درگاه مبدأ)

این گزینه از Nping می‌خواهد از درگاه مشخص‌شده به عنوان درگاه مبدأ برای دیتاگرام‌های ارسالی استفاده کند. توجه داشته باشید که این کار ممکن است در همه سامانه‌ها کار نکند یا نیازمند امتیازات ریشه (root) باشد. مقدار مشخص‌شده باید یک عدد صحیح در محدوده [0–65535] باشد.

--badsum (چک‌سام نامعتبر)

از Nping می‌خواهد از یک چک‌سام UDP نامعتبر برای بسته‌های ارسالی به میزبان‌های هدف استفاده کند. از آنجا که تقریباً پشته‌های IP تمام میزبان‌ها به درستی این بسته‌ها را دور می‌اندازند، هرگونه پاسخ دریافتی احتمالاً از سوی یک دیوار آتش یا یک IDS می‌آید که زحمت اعتبارسنجی چک‌سام را به خود نداده است. برای جزئیات بیشتر درباره این روش، به https://nmap.org/p60-12.html مراجعه کنید.

--icmp-type type (نوع ICMP)

این گزینه مشخص می‌کند کدام نوع از پیام‌های ICMP باید تولید شوند. type می‌تواند به دو شیوه مختلف ارائه شود. می‌توانید از شماره‌های رسمی نوع تعیین‌شده توسط IANA[1] (مانند --icmp-type 8 برای ICMP Echo Request) استفاده کنید، یا از هر یک از نام‌های کوتاه فهرست‌شده در بخش “ICMP Types” بهره بگیرید.

--icmp-code code (کد ICMP)

این گزینه مشخص می‌کند کدام کد ICMP باید در پیام‌های ICMP تولیدشده گنجانده شود. code می‌تواند به دو شیوه مختلف ارائه شود. می‌توانید از شماره‌های رسمی کد تعیین‌شده توسط IANA[1] (مانند --icmp-code 1 برای Fragment Reassembly Time Exceeded) استفاده کنید، یا از هر یک از نام‌های کوتاه فهرست‌شده در بخش “ICMP Codes” بهره بگیرید.

--icmp-id id (شناسه ICMP)

این گزینه مقدار شناسه مورد استفاده در برخی پیام‌های ICMP را مشخص می‌کند. به‌طور کلی برای تطبیق دادن پیام‌های درخواست و پاسخ به کار می‌رود. id باید عددی در محدوده [0–65535] باشد.

--icmp-seq seq (توالی ICMP)

این گزینه مقدار فیلد شماره توالی استفاده‌شده در برخی پیام‌های ICMP را مشخص می‌کند. به‌طور کلی برای تطبیق دادن پیام‌های درخواست و پاسخ به کار می‌رود. id باید عددی در محدوده [0–65535] باشد.

--icmp-redirect-addr addr (نشانی تغییرمسیر ICMP)

این گزینه فیلد نشانی را در پیام‌های ICMP Redirect مقداردهی می‌کند. به عبارت دیگر، نشانی IP مسیریابی را تعیین می‌کند که هنگام ارسال دیتاگرام‌های IP به مقصد اصلی باید استفاده شود. addr می‌تواند یک نشانی IPv4 یا یک نام میزبان باشد.

--icmp-param-pointer pointer (اشاره‌گر اشکال در پارامتر ICMP)

این گزینه اشاره‌گری را مشخص می‌کند که محل بروز مشکل را در پیام‌های ICMP Parameter Problem نشان می‌دهد. pointer باید عددی در محدوده [0–255] باشد. معمولاً این گزینه تنها زمانی استفاده می‌شود که کد ICMP روی 0 ("Pointer indicates the error") تنظیم شده باشد.

--icmp-advert-lifetime ttl (طول‌عمر اعلان مسیریاب ICMP)

این گزینه طول‌عمر اعلان مسیریاب را مشخص می‌کند؛ یعنی تعداد ثانیه‌هایی که اطلاعات ارائه‌شده در یک ICMP Router Advertisement معتبر در نظر گرفته می‌شوند. ttl باید یک عدد صحیح مثبت در محدوده [0–65535] باشد.

--icmp-advert-entry addr,pref (مدخل اعلان مسیریاب ICMP)

این گزینه یک مدخل اعلان مسیریاب را به پیام ICMP Router Advertisement اضافه می‌کند. این پارامتر باید شامل دو مقدار باشد که با کاما از یکدیگر جدا شده‌اند. addr نشانی IP مسیریاب است و می‌تواند به عنوان یک نشانی IP در قالب ده‌دهی نقطه‌دار یا به عنوان یک نام میزبان مشخص شود. pref سطح اولویت برای IP مشخص‌شده است. این مقدار باید عددی در محدوده [0–4294967295] باشد. به عنوان مثال: --icmp-advert-entry 192.168.128.1,3.

--icmp-orig-time timestamp (برچسب زمانی ایجاد ICMP)

این گزینه برچسب زمانی ایجاد (Originate Timestamp) را در پیام‌های ICMP Timestamp تنظیم می‌کند. برچسب زمانی ایجاد به صورت تعداد میلی‌ثانیه‌ها از نیمه‌شب UTC بیان می‌شود و متناظر با زمانی است که فرستنده آخرین بار پیش از ارسال، پیام Timestamp را لمس کرده است. timestamp می‌تواند به صورت یک زمان عادی مشخص شود (مانند 10s، 3h، 1000ms)، یا رشته ویژه now. می‌توانید مقادیری را به now اضافه یا از آن کم کنید؛ برای مثال --icmp-orig-time now-2s، --icmp-orig-time now+1h، --icmp-orig-time now+200ms.

--icmp-recv-time timestamp (برچسب زمانی دریافت ICMP)

این گزینه برچسب زمانی دریافت (Receive Timestamp) را در پیام‌های ICMP Timestamp تنظیم می‌کند. برچسب زمانی دریافت به صورت تعداد میلی‌ثانیه‌ها از نیمه‌شب UTC بیان می‌شود و متناظر با زمانی است که پژواک‌دهنده هنگام دریافت، اولین بار پیام Timestamp را لمس کرده است. timestamp مشابه با --icmp-orig-time است.

--icmp-trans-time timestamp (برچسب زمانی ارسال ICMP)

این گزینه برچسب زمانی ارسال (Transmit Timestamp) را در پیام‌های ICMP Timestamp تنظیم می‌کند. برچسب زمانی ارسال به صورت تعداد میلی‌ثانیه‌ها از نیمه‌شب UTC بیان می‌شود و متناظر با زمانی است که پژواک‌دهنده آخرین بار پیش از ارسال، پیام Timestamp را لمس کرده است. timestamp مشابه با --icmp-orig-time است.

این شناسه‌ها می‌توانند به عنوان نمادهای یادافزا برای شماره‌های نوع ICMP داده‌شده به گزینهٔ --icmp-type استفاده شوند. به طور کلی سه شکل برای هر شناسه وجود دارد: نام کامل (مانند destination-unreachable)، نام کوتاه (مانند dest-unr)، یا حروف اختصاری (مانند du). در انواع ICMP که درخواستی را مطرح می‌کنند، واژهٔ "request" حذف شده است.

echo-reply, echo-rep, er

Echo Reply (نوع 0). این پیام در پاسخ به یک پیام Echo Request ارسال می‌شود.

destination-unreachable, dest-unr, du

Destination Unreachable (نوع 3). این پیام نشان می‌دهد که یک دیتاگرام نتوانست به مقصد خود تحویل داده شود.

source-quench, sour-que, sq

Source Quench (نوع 4). این پیام توسط یک دستگاه IP دچار تراکم ترافیک به کار می‌رود تا به دستگاه دیگر اعلام کند که بسته‌ها را بسیار سریع ارسال می‌کند و باید سرعت را کاهش دهد.

redirect, redi, r

Redirect (نوع 5). این پیام معمولاً توسط مسیریاب‌ها استفاده می‌شود تا به یک میزبان اطلاع دهند مسیر بهتری برای ارسال دیتاگرام‌ها وجود دارد. همچنین گزینهٔ --icmp-redirect-addr را ببینید.

echo-request, echo, e

Echo Request (نوع 8). این پیام برای آزمودن اتصال‌پذیری دستگاه دیگری در شبکه استفاده می‌شود.

router-advertisement, rout-adv, ra

Router Advertisement (نوع 9). این پیام توسط مسیریاب‌ها استفاده می‌شود تا میزبان‌ها را از وجود و توانمندی‌های خود مطلع سازند. همچنین گزینهٔ --icmp-advert-lifetime را ببینید.

router-solicitation, rout-sol, rs

Router Solicitation (نوع 10). این پیام توسط میزبان‌ها استفاده می‌شود تا پیام‌های Router Advertisement را از هر مسیریاب شنودکننده‌ای درخواست کنند.

time-exceeded, time-exc, te

Time Exceeded (نوع 11). این پیام توسط یک دستگاه میانی (معمولاً یک مسیریاب) تولید می‌شود تا نشان دهد یک دیتاگرام پیش از رسیدن به مقصد دور انداخته شده است، زیرا IP TTL آن منقضی شده است.

parameter-problem, member-pro, pp

Parameter Problem (نوع 12). این پیام زمانی استفاده می‌شود که یک دستگاه مشکلی در یکی از پارامترهای سرآیند IP بیابد و نتواند به پردازش آن ادامه دهد. همچنین گزینهٔ --icmp-param-pointer را ببینید.

timestamp, time, tm

Timestamp Request (نوع 13). این پیام برای درخواست از یک دستگاه جهت ارسال مقدار برچسب زمانی برای محاسبهٔ زمان انتشار و همگام‌سازی ساعت استفاده می‌شود. همچنین گزینه‌های --icmp-orig-time، --icmp-recv-time و --icmp-trans-time را ببینید.

timestamp-reply, time-rep, tr

Timestamp Reply (نوع 14). این پیام در پاسخ به یک پیام Timestamp Request ارسال می‌شود.

information, info, i

Information Request (نوع 15). این پیام اکنون منسوخ شده است، اما در ابتدا برای درخواست اطلاعات پیکربندی از دستگاهی دیگر استفاده می‌شد.

information-reply, info-rep, ir

Information Reply (نوع 16). این پیام اکنون منسوخ شده است، اما در ابتدا در پاسخ به یک پیام Information Request جهت ارائهٔ اطلاعات پیکربندی ارسال می‌شد.

mask-request, mask, m

Address Mask Request (نوع 17). این پیام برای درخواست از یک دستگاه جهت ارسال subnet mask آن استفاده می‌شود.

mask-reply, mask-rep, mr

Address Mask Reply (نوع 18). این پیام حاوی یک subnet mask است و در پاسخ به یک پیام Address Mask Request ارسال می‌شود.

traceroute, trace, tc

Traceroute (نوع 30). این پیام معمولاً توسط یک دستگاه میانی هنگامی ارسال می‌شود که یک دیتاگرام IP با گزینهٔ traceroute دریافت کند. پیام‌های ICMP Traceroute هنوز آزمایشی هستند؛ برای اطلاعات بیشتر RFC 1393 را ببینید.

این شناسه‌ها می‌توانند به عنوان نمادهای یادافزا برای شماره‌های کد ICMP داده‌شده به گزینهٔ --icmp-code استفاده شوند. این شناسه‌ها بر اساس نوع ICMP متناظرشان فهرست شده‌اند.

Destination Unreachable

network-unreachable, netw-unr, net

کد 0. دیتاگرام نتوانست به شبکهٔ مقصد تحویل داده شود (احتمالاً به دلیل مشکل در مسیریابی).

host-unreachable, host-unr, host

کد 1. دیتاگرام به شبکهٔ مقصد تحویل داده شد اما دسترسی به میزبان مشخص‌شده امکان‌پذیر نبود (احتمالاً به دلیل مشکل در مسیریابی).

protocol-unreachable, prot-unr, proto

کد 2. پروتکل مشخص‌شده در فیلد Protocol دیتاگرام IP توسط میزبانی که دیتاگرام به آن تحویل داده شده پشتیبانی نمی‌شود.

port-unreachable, port-unr, port

کد 3. پورت مقصد TCP/UDP نامعتبر بود.

needs-fragmentation, need-fra, frag

کد 4. بیت DF در دیتاگرام تنظیم شده بود اما اندازهٔ آن برای MTU شبکهٔ فیزیکی بعدی بیش از حد بزرگ بود، بنابراین باید دور انداخته می‌شد.

source-route-failed, sour-rou, routefail

کد 5. دیتاگرام IP دارای گزینهٔ Source Route بود اما مسیریاب نتوانست آن را به گام بعدی (next hop) عبور دهد.

network-unknown, netw-unk, net?

کد 6. شبکهٔ مقصد ناشناخته است. این کد هرگز استفاده نمی‌شود؛ در عوض از Network Unreachable استفاده می‌شود.

host-unknown, host-unk, host?

کد 7. میزبان مشخص‌شده ناشناخته است. معمولاً توسط یک مسیریاب محلی برای میزبان مقصد تولید می‌شود تا دربارهٔ یک نشانی نادرست اطلاع‌رسانی کند.

host-isolated, host-iso, isolated

کد 8. Source Host Isolated (میزبان مبدا ایزوله‌شده). استفاده نمی‌شود.

network-prohibited, netw-pro, !net

کد 9. ارتباط با شبکهٔ مقصد از نظر مدیریتی ممنوع است (دستگاه مبدأ مجاز به ارسال بسته‌ها به شبکهٔ مقصد نیست).

host-prohibited, host-pro, !host

کد 10. ارتباط با میزبان مقصد از نظر مدیریتی ممنوع است (دستگاه مبدأ مجاز به ارسال بسته‌ها به شبکهٔ مقصد هست، اما به دستگاه مقصد مجاز نیست).

network-tos, unreachable-network-tos, netw-tos, tosnet

کد 11. شبکهٔ مقصد غیرقابل دسترس است زیرا نمی‌تواند نوع سرویس مشخص‌شده در فیلد IP TOS را ارائه دهد.

host-tos, unreachable-host-tos, toshost

کد 12. میزبان مقصد غیرقابل دسترس است زیرا نمی‌تواند نوع سرویس مشخص‌شده در فیلد IP TOS را ارائه دهد.

communication-prohibited, comm-pro, !comm

کد 13. دیتاگرام به دلیل فیلتر کردنی که پیام را بر اساس محتوایش مسدود می‌کند، نتوانست فوروارد شود.

host-precedence-violation, precedence-violation, prec-vio, violation

کد 14. مقدار اولویت (Precedence) در فیلد IP TOS مجاز نیست.

precedence-cutoff, prec-cut, cutoff

کد 15. مقدار اولویت (Precedence) در فیلد IP TOS کمتر از حداقل مجاز برای شبکه است.

Redirect

redirect-network, redi-net, net
کد 0. تغییر مسیر همه دیتاگرام‌های آینده با شبکه مقصد مشابه دیتاگرام اصلی، به مسیریابی که در فیلد Address مشخص شده است. استفاده از این کد بر اساس RFC 1812 ممنوع است.

redirect-host, redi-host, host

کد 1. تغییر مسیر همه دیتاگرام‌های آینده با میزبان مقصد مشابه دیتاگرام اصلی، به مسیریابی که در فیلد Address مشخص شده است.

redirect-network-tos, redi-ntos, redir-ntos

کد 2. تغییر مسیر همه دیتاگرام‌های آینده با شبکه مقصد و مقدار IP TOS مشابه با دیتاگرام اصلی، به مسیریابی که در فیلد Address مشخص شده است. استفاده از این کد بر اساس RFC 1812 ممنوع است.

redirect-host-tos, redi-htos, redir-htos

کد 3. تغییر مسیر همه دیتاگرام‌های آینده با میزبان مقصد و مقدار IP TOS مشابه با دیتاگرام اصلی، به مسیریابی که در فیلد Address مشخص شده است.

اعلان مسیریاب (Router Advertisement)

normal-advertisement, norm-adv, normal, zero, default, def

کد 0. اعلان عادی مسیریاب. در Mobile IP: کارگزار پویایی (Mobility agent) می‌تواند به عنوان یک مسیریاب برای دیتاگرام‌های IP غیرمرتبط با گره‌های متحرک عمل کند.

not-route-common-traffic, not-rou, mobile-ip, !route, !commontraffic

کد 16. مورد استفاده در Mobile IP. کارگزار پویایی، ترافیک عمومی را هدایت (route) نمی‌کند. تمام کارگزارهای خارجی (foreign agents) باید هرگونه دیتاگرام دریافت‌شده از یک گره متحرک ثبت‌شده را به یک مسیریاب پیش‌فرض فوروارد کنند.

اتمام مهلت زمانی (Time Exceeded)

ttl-exceeded-in-transit, ttl-exc, ttl-transit

کد 0. زمان حیات (Time To Live یا TTL) پروتکل IP در حین انتقال منقضی شده است.

fragment-reassembly-time-exceeded, frag-exc, frag-time

کد 1. مهلت زمان بازترکیب قطعات (fragment reassembly) منقضی شده است.

مشکل در پارامتر (Parameter Problem)

pointer-indicates-error, poin-ind, pointer

کد 0. فیلد اشاره‌گر (pointer) محل بروز مشکل را نشان می‌دهد. گزینه --icmp-param-pointer را ببینید.

missing-required-option, miss-option, option-missing

کد 1. انتظار می‌رفت دیتاگرام IP گزینه‌ای داشته باشد که وجود ندارد.

bad-length, bad-len, badlen

کد 2. طول دیتاگرام IP نامعتبر است.

--arp-type type (نوع ICMP)

این گزینه مشخص می‌کند که چه نوعی از پیام‌های ARP باید تولید شوند. type می‌تواند به دو روش مختلف ارائه شود. می‌توانید از شماره‌های رسمی تعیین‌شده توسط IANA[2] (برای مثال --arp-type 1 برای ARP Request) استفاده کنید، یا از یکی از نام‌های اختصاری در بخش موسوم به “ARP Types” بهره ببرید.

--arp-sender-mac mac (آدرس MAC فرستنده)

این گزینه فیلد Sender Hardware Address از هدر ARP را تنظیم می‌کند. اگرچه ARP از انواع مختلفی از آدرس‌های لایه پیوند پشتیبانی می‌کند، اما در حال حاضر Nping تنها از آدرس‌های MAC پشتیبانی می‌کند. mac باید با استفاده از قالب سنتی MAC مشخص شود (برای مثال 00:0a:8a:32:f4:ae). همچنین می‌توانید از خط پیوند به عنوان جداکننده استفاده کنید (برای مثال 00-0a-8a-32-f4-ae).

--arp-sender-ip addr (آدرس IP فرستنده)

این گزینه فیلد Sender IP از هدر ARP را تنظیم می‌کند. addr می‌تواند به عنوان یک آدرس IPv4 یا یک نام میزبان (hostname) مشخص شود.

--arp-target-mac mac (آدرس MAC هدف)

این گزینه فیلد Target Hardware Address از هدر ARP را تنظیم می‌کند.

--arp-target-ip addr (آدرس IP هدف)

این گزینه فیلد Target IP از هدر ARP را تنظیم می‌کند.

این شناسه‌ها می‌توانند به عنوان کدهای یادافزا (mnemonics) برای شماره‌های نوع ARP که به گزینهٔ --arp-type داده می‌شوند، استفاده شوند.

arp-request, arp, a

درخواست ARP (نوع ۱). درخواست‌های ARP برای تبدیل آدرس‌های لایه شبکه (معمولاً آدرس‌های IP) به آدرس‌های لایه پیوند (معمولاً آدرس‌های MAC) استفاده می‌شوند. اساساً یک درخواست ARP پیامی همگانی (broadcast) است که از میزبانِ دارای یک آدرس IP مشخص در همان قطعه شبکه می‌خواهد تا آدرس MAC خود را ارائه دهد.

arp-reply, arp-rep, ar

پاسخ ARP (نوع ۲). یک پاسخ ARP پیامی است که میزبان در پاسخ به یک درخواست ARP برای ارائه آدرس لایه پیوند خود ارسال می‌کند.

rarp-request, rarp, r

درخواست‌های RARP (نوع ۳). درخواست‌های RARP برای تبدیل یک آدرس لایه پیوند (معمولاً آدرس MAC) به یک آدرس لایه شبکه (معمولاً آدرس IP) استفاده می‌شوند. اساساً یک درخواست RARP پیامی همگانی است که توسط میزبانی ارسال می‌شود که می‌خواهد آدرس IP خود را بداند زیرا فاقد آن است. این نخستین پروتکلی بود که برای حل مشکل راه‌اندازی اولیه (bootstrapping) طراحی شد. با این حال، RARP اکنون منسوخ شده و به جای آن از DHCP استفاده می‌شود. برای اطلاعات بیشتر دربارهٔ RARP به RFC 903 مراجعه کنید.

rarp-reply, rarp-rep, rr

پاسخ RARP (نوع ۴). یک پاسخ RARP پیامی است که در پاسخ به یک درخواست RARP فرستاده می‌شود تا آدرس IP را به میزبانی که در ابتدا درخواست RARP را فرستاده است ارائه دهد.

drarp-request, drarp, d

درخواست Dynamic RARP (نوع ۵). پروتکل RARP پویا (Dynamic RARP) توسعه‌ای بر RARP است که برای دریافت یا تخصیص یک آدرس لایه شبکه از یک آدرس ثابت لایه پیوند به کار می‌رود. پروتکل DRARP عمدتاً در اواخر دهه ۹۰ در بسترهای Sun Microsystems استفاده می‌شد اما اکنون دیگر کاربردی ندارد. برای اطلاعات بیشتر به RFC 1931 مراجعه کنید.

drarp-reply, drarp-rep, dr

پاسخ Dynamic RARP (نوع ۶). یک پاسخ DRARP پیامی است که در پاسخ به یک درخواست RARP برای ارائه آدرس لایه شبکه فرستاده می‌شود.

drarp-error, drarp-err, de

خطای DRARP (نوع ۷). پیام‌های خطای DRARP معمولاً در پاسخ به درخواست‌های DRARP برای اعلام بروز یک خطا ارسال می‌شوند. در پیام‌های خطای DRARP، فیلد Target Protocol Address برای حمل یک کد خطا (معمولاً در اولین بایت) استفاده می‌شود. کد خطا برای این است که توضیح دهد چرا هیچ آدرس پروتکل هدفی برگردانده نمی‌شود. برای اطلاعات بیشتر به RFC 1931 مراجعه کنید.

inarp-request, inarp, i

درخواست Inverse ARP (نوع ۸). درخواست‌های InARP برای تبدیل یک آدرس لایه پیوند به یک آدرس لایه شبکه استفاده می‌شوند. این سازوکار مشابه درخواست RARP است اما در این مورد، فرستندهٔ درخواست InARP می‌خواهد آدرس لایه شبکه یک گره دیگر را بداند، نه آدرس خودش را. پروتکل InARP عمدتاً در شبکه‌های Frame Relay و ATM استفاده می‌شود. برای اطلاعات بیشتر به RFC 2390 مراجعه کنید.

inarp-reply, inarp-rep, ir

پاسخ Inverse ARP (نوع ۹). پیام‌های پاسخ InARP در پاسخ به درخواست‌های InARP ارسال می‌شوند تا آدرس لایه شبکه مرتبط با میزبانی که دارای آدرس لایه پیوند مشخصی است را ارائه دهند.

arp-nak, an

پیام ARP NAK (نوع ۱۰). پیام‌های ARP NAK افزونه‌ای بر پروتکل ATMARP هستند و برای بهبود پایداری سازوکار کارساز ATMARP استفاده می‌شوند. با ARP NAK، کلاینت می‌تواند تفاوت بین خطای فاجعه‌بار سرور و شکست در جستجوی جدول ATMARP را تشخیص دهد. برای اطلاعات بیشتر به RFC 1577 مراجعه کنید.

-S addr, --source-ip addr (آدرس IP مبدأ / Source IP Address)

آدرس IP مبدأ را تعیین می‌کند. این گزینه به شما امکان می‌دهد تا یک آدرس IP سفارشی را برای استفاده به عنوان آدرس IP مبدأ در بسته‌های ارسالی مشخص کنید. این کار اجازه جعل فرستنده بسته‌ها را می‌دهد. addr می‌تواند یک آدرس IPv4 یا یک نام میزبان باشد.

--dest-ip addr (آدرس IP مقصد / Destination IP Address)

یک هدف به فهرست اهداف Nping اضافه می‌کند. این گزینه برای سازگاری ارائه شده است اما استفاده از آن به نفع مشخص‌کردن ساده اهداف منسوخ شده است. به بخش “تعیین هدف (TARGET SPECIFICATION)” مراجعه کنید.

--tos tos (نوع سرویس / Type of Service)

فیلد IP TOS را تنظیم می‌کند. فیلد TOS برای حمل اطلاعاتی جهت ارائه ویژگی‌های کیفیت سرویس (QoS) استفاده می‌شود. این فیلد معمولاً برای پشتیبانی از روشی به نام Differentiated Services به کار می‌رود. برای اطلاعات بیشتر به RFC 2474 مراجعه کنید. tos باید عددی در بازهٔ [0–255] باشد.

--id id (شناسه / Identification)

فیلد Identification در IPv4 را تنظیم می‌کند. فیلد Identification یک مقدار ۱۶ بیتی است که بین تمام قطعات متعلق به یک پیام مشخص مشترک است. این مقدار توسط گیرنده برای سرهم‌کردن مجدد پیام اصلی از روی قطعات دریافتی استفاده می‌شود. id باید عددی در بازهٔ [0–65535] باشد.

--df (قطعه‌قطعه نکن / Don't Fragment)

بیت Don't Fragment را در بسته‌های ارسالی فعال می‌کند. هنگامی که پرچم DF یک دیتاگرام IP فعال است، دستگاه‌های میانی مجاز به قطعه‌قطعه کردن آن نیستند؛ بنابراین اگر نیاز باشد که از شبکه‌ای با MTU کوچک‌تر از طول دیتاگرام عبور کند، دیتاگرام باید دور انداخته شود. در حالت عادی یک پیام ICMP Destination Unreachable تولید و به فرستنده بازگردانده می‌شود.

--mf (قطعات بیشتر / More Fragments)

بیت More Fragments را در بسته‌های ارسالی تنظیم می‌کند. پرچم MF بدین منظور تنظیم می‌شود که به گیرنده نشان دهد دیتاگرام فعلی، قطعه‌ای از یک دیتاگرام بزرگ‌تر است. صفر بودن آن نشان می‌دهد که دیتاگرام فعلی یا آخرین قطعه از این مجموعه است یا تنها قطعهٔ آن است.

--evil (رزرو شده / خبیث - Reserved / Evil)

بیت Reserved / Evil را در بسته‌های ارسالی فعال می‌کند. پرچم Evil به دیوار‌های آتش و سایر سیستم‌های امنیت شبکه کمک می‌کند تا بین دیتاگرام‌هایی با قصد مخرب و آن‌هایی که صرفاً غیرعادی هستند تمایز قائل شوند. در صورت فعال بودن، نشان می‌دهد که دیتاگرام نیت پلید دارد و به سیستم‌های ناامن دستور می‌دهد تسلیم شوند. تنظیم آن روی صفر بیانگر عدم وجود نیت خبیثانه است. در صورتی که متغیر محیطی SCRIPT_KIDDIE روی مقداری غیر از صفر تنظیم شده باشد، این گزینه به طور ضمنی فعال می‌شود.

--ttl hops (طول عمر / Time To Live)

فیلد Time-To-Live (TTL) را در بسته‌های ارسالی IPv4 روی مقدار داده شده تنظیم می‌کند. فیلد TTL مشخص می‌کند که یک دیتاگرام چه مدت مجاز به بقا در شبکه است. در اصل برای نشان دادن تعداد ثانیه‌ها در نظر گرفته شده بود، اما در عمل نشان‌دهنده تعداد گام‌هایی (hops) است که یک بسته می‌تواند پیش از دور انداخته شدن طی کند. فیلد TTL تلاش می‌کند از وضعیتی جلوگیری کند که در آن دیتاگرام‌های تحویل‌نشده تا ابد از یک مسیریاب به مسیریاب دیگر بازفرستاده شوند. hops باید عددی در بازهٔ [0–255] باشد.

--badsum-ip (چک‌سام نامعتبر IP / Invalid IP checksum)

از Nping می‌خواهد که برای بسته‌های ارسالی به میزبان‌های هدف از چک‌سام نامعتبر IP استفاده کند. توجه داشته باشید که برخی سیستم‌ها (مانند بیشتر هسته‌های Linux)، ممکن است چک‌سام را پیش از قرار دادن بسته روی بستر شبکه اصلاح کنند؛ بنابراین حتی اگر Nping در خروجی خود چک‌سام نادرست را نشان دهد، بسته‌ها ممکن است به صورت شفاف توسط هسته تصحیح شوند.

--ip-options R|S [route]|L [route]|T|U ..., --ip-options hex string (گزینه‌های IP / IP Options)

پروتکل IP گزینه‌های متعددی را ارائه می‌دهد که می‌توانند در سرآیند بسته قرار گیرند. برخلاف گزینه‌های همه‌جا حاضر TCP، گزینه‌های IP به دلایل کاربردی و امنیتی به‌ندرت دیده می‌شوند. در واقع، بسیاری از مسیریاب‌های اینترنت خطرناک‌ترین گزینه‌ها مانند مسیریابی مبدأ (source routing) را مسدود می‌کنند. با این حال، این گزینه‌ها همچنان می‌توانند در برخی موارد برای تعیین و دستکاری مسیر شبکه به سمت ماشین‌های هدف مفید باشند. برای مثال، حتی زمانی که روش‌های سنتی‌تر به سبک traceroute با شکست مواجه می‌شوند، ممکن است بتوانید از گزینهٔ record route برای تعیین مسیر به یک هدف استفاده کنید. یا اگر بسته‌های شما توسط یک دیوار آتش خاص دور انداخته می‌شوند، ممکن است بتوانید با استفاده از گزینه‌های strict یا loose source routing مسیر متفاوتی را مشخص نمایید.

قدرتمندترین روش برای تعیین گزینه‌های IP، ارسال مستقیم داده‌های شانزده‌شانزدهی (هگزادسیمال) به عنوان آرگومان به --ip-options است. قبل از هر مقدار بایت هگزادسیمال از \x استفاده کنید. می‌توانید کاراکترهای مشخصی را با آوردن یک ستاره و سپس تعداد دفعات تکرار دلخواه، تکرار کنید. برای مثال، \x01\x07\x04\x00*4 مشابه \x01\x07\x04\x00\x00\x00\x00 است.

توجه داشته باشید که اگر تعداد بایتی را مشخص کنید که مضربی از چهار نباشد، طول سرآیند IP نادرستی در بستهٔ IP تنظیم خواهد شد. دلیل این امر این است که فیلد طول سرآیند IP تنها می‌تواند مضرب‌های چهار را بیان کند. در این حالت‌ها، طول با تقسیم طول سرآیند بر ۴ و گرد کردن به پایین محاسبه می‌شود. این امر بر نحوهٔ تفسیر سرآیندی که پس از سرآیند IP می‌آید تأثیر گذاشته و اطلاعات جعلی در Nping یا در خروجی هر برنامه‌ شنود بسته‌ای (sniffer) نمایش می‌دهد. اگرچه این وضعیت ممکن است برای برخی آزمایش‌های فشار پشته (stack stress tests) مفید باشد، کاربران معمولاً می‌خواهند لایهٔ پرکننده (padding) صریح تعیین کنند تا طول سرآیند به درستی تنظیم شود.

ابزار Nping همچنین سازوکار میان‌بُری را برای تعیین گزینه‌ها ارائه می‌دهد. کافی است حرف R، T یا U را به ترتیب برای درخواست record-route، record-timestamp یا هر دوی این گزینه‌ها با هم وارد کنید. مسیریابی مبدأ آزاد (loose) یا صلب (strict) را می‌توان با یک L یا S مشخص کرد که پس از آن یک فاصله و سپس فهرستی از آدرس‌های IP جدا شده با فاصله قرار می‌گیرد.

برای اطلاعات بیشتر و مشاهده مثال‌هایی از نحوهٔ استفاده از گزینه‌های IP در Nping، به پست فهرست پستی در https://seclists.org/nmap-dev/2006/q3/0052.html مراجعه کنید.

--mtu size (بزرگ‌ترین واحد انتقال / Maximum Transmission Unit)

این گزینه یک MTU ساختگی را در Nping تنظیم می‌کند تا دیتاگرام‌های IP بزرگ‌تر از size پیش از ارسال قطعه‌قطعه شوند. size باید بر حسب بایت مشخص شود و متناظر با تعداد هشت‌بیت‌هایی (octets) است که می‌توانند در یک تک‌فریم لایه پیوند حمل شوند.

-6, --ipv6 (استفاده از IPv6)

به Nping می‌گوید که به جای IPv4 پیش‌فرض از IP نسخه ۶ استفاده کند. به‌طور کلی ایده خوبی است که این گزینه را تا حد امکان در ابتدای خط فرمان مشخص کنید تا Nping بتواند آن را زودتر تجزیه کرده و از قبل بداند که باقی پارامترها به IPv6 اشاره دارند. نحو دستور مانند همیشه است، با این تفاوت که گزینه -6 را نیز اضافه می‌کنید. البته، اگر به جای یک نام میزبان، یک نشانی را مشخص می‌کنید، باید از نحو IPv6 استفاده کنید. نشانی ممکن است شبیه به 3ffe:7501:4819:2000:210:f3ff:fe03:14d0 باشد، بنابراین استفاده از نام میزبان پیشنهاد می‌شود.

اگرچه IPv6 هنوز جهان را کاملاً تسخیر نکرده است، اما در برخی کشورها (معمولاً آسیایی) استفاده چشمگیری دارد و بیشتر سیستم‌عامل‌های امروزی از آن پشتیبانی می‌کنند. برای استفاده از Nping با IPv6، باید هم مبدأ و هم مقصد بسته‌های شما برای IPv6 پیکربندی شده باشند. اگر ارائه‌دهنده خدمات اینترنت شما (ISP) (مانند بیشتر آن‌ها) نشانی‌های IPv6 به شما اختصاص نمی‌دهد، کارگزارهای رایگان تونل (tunnel brokers) به‌طور گسترده در دسترس هستند و به‌خوبی با Nping کار می‌کنند. می‌توانید از سرویس رایگان کارگزار تونل IPv6 در http://www.tunnelbroker.net استفاده کنید.

لطفاً توجه داشته باشید که پشتیبانی از IPv6 هنوز بسیار آزمایشی است و ممکن است بسیاری از حالت‌ها و گزینه‌ها با آن کار نکنند.

-S addr, --source-ip addr (نشانی IP مبدأ)

نشانی IP مبدأ را تنظیم می‌کند. این گزینه به شما اجازه می‌دهد نشانی IP دلخواهی را مشخص کنید تا به عنوان نشانی IP مبدأ در بسته‌های ارسالی استفاده شود. این کار امکان جعل (spoofing) فرستنده بسته‌ها را فراهم می‌کند. addr می‌تواند یک نشانی IPv6 یا یک نام میزبان باشد.

--dest-ip addr (نشانی IP مقصد)

هدفی را به فهرست اهداف Nping اضافه می‌کند. این گزینه برای حفظ سازگاری ارائه شده است، اما استفاده از آن به نفع مشخص کردن مستقیم و ساده هدف منسوخ شده است. بخش “TARGET SPECIFICATION” را ببینید.

--flow label (برچسب جریان)

فیلد Flow Label در IPv6 را تنظیم می‌کند. فیلد Flow Label طولی معادل ۲۰ بیت دارد و هدف آن ارائه برخی ویژگی‌های کیفیت خدمات (QoS) برای تحویل بی‌درنگ دیتاگرام است. با این حال، هنوز به‌طور گسترده مورد پذیرش قرار نگرفته است و همه مسیریاب‌ها یا نقاط پایانی از آن پشتیبانی نمی‌کنند. برای اطلاعات بیشتر RFC 2460 را بررسی کنید. label باید یک عدد صحیح در بازه [0–1048575] باشد.

--traffic-class class (کلاس ترافیک)

فیلد Traffic Class در IPv6 را تنظیم می‌کند. این فیلد مشابه فیلد TOS در IPv4 است و هدف آن ارائه روش Differentiated Services است که تفکیک مقیاس‌پذیر خدمات در اینترنت را بدون نیاز به حفظ وضعیت در هر جریان و سیگنال‌دهی در هر گام ممکن می‌سازد. برای اطلاعات بیشتر RFC 2474 را بررسی کنید. class باید یک عدد صحیح در بازه [0–255] باشد.

--hop-limit hops (حد گام)

فیلد Hop Limit در IPv6 را در بسته‌های ارسالی روی مقدار داده‌شده تنظیم می‌کند. فیلد Hop Limit مشخص می‌کند که دیتاگرام چه مدت مجاز است در شبکه وجود داشته باشد. این مقدار نشان‌دهنده تعداد گام‌هایی است که یک بسته می‌تواند پیش از دور انداخته شدن طی کند. همانند TTL در IPv4، فیلد Hop Limit در IPv6 نیز سعی می‌کند از شرایطی که در آن دیتاگرام‌های غیرقابل‌تحویل به‌طور بی‌پایان از یک مسیریاب به مسیریاب دیگر بازفرستاده می‌شوند، جلوگیری کند. hops باید عددی در بازه [0–255] باشد.

در بیشتر موارد Nping بسته‌ها را در سطح خام IP ارسال می‌کند. این بدان معناست که Nping بسته‌های IP خود را می‌سازد و آن‌ها را از طریق یک سوکت خام (raw socket) مخابره می‌کند. با این حال، در برخی موارد ممکن است ارسال بسته‌ها در سطح خام اترنت ضروری باشد. این حالت، برای مثال، زمانی رخ می‌دهد که Nping در Windows اجرا شود (چرا که Microsoft پشتیبانی از سوکت خام را از زمان Windows XP SP2 غیرفعال کرده است)، یا زمانی که از Nping خواسته شود بسته‌های ARP ارسال کند. از آنجا که در برخی موارد ساخت فریم‌های اترنت ضروری است، Nping گزینه‌هایی را برای دستکاری فیلدهای مختلف ارائه می‌دهد.

--dest-mac mac (نشانی MAC مقصد در اترنت)

این گزینه نشانی MAC مقصدی را که باید در فریم‌های اترنت خروجی قرار گیرد، تنظیم می‌کند. این ویژگی زمانی مفید است که Nping نتواند نشانی MAC گام بعدی را تعیین کند یا زمانی که بخواهید کاوش‌ها را از طریق مسیریابی غیر از دروازه پیش‌فرض پیکربندی‌شده عبور دهید. نشانی MAC باید قالب معمول شش بایت جداشده با دونقطه را داشته باشد، مانند 00:50:56:d4:01:98. علاوه بر این، می‌توان به جای دونقطه از خط تیره استفاده کرد. از کلمه random یا rand برای ایجاد یک نشانی تصادفی، و از broadcast یا bcast برای استفاده از ff:ff:ff:ff:ff:ff استفاده کنید. اگر یک نشانی MAC مقصد ساختگی تنظیم کنید، ممکن است کاوش‌های شما به اهداف مورد نظر نرسند.

--source-mac mac (نشانی MAC مبدأ در اترنت)

این گزینه نشانی MAC مبدأیی را که باید در فریم‌های اترنت خروجی قرار گیرد، تنظیم می‌کند. این ویژگی زمانی مفید است که Nping نتواند نشانی MAC رابط شبکه شما را تعیین کند یا زمانی که بخواهید ترافیک را ضمن پنهان‌سازی نشانی واقعی کارت شبکه خود به درون شبکه تزریق کنید. نحو این گزینه مشابه --dest-mac است. اگر یک نشانی MAC مبدأ ساختگی تنظیم کنید، ممکن است پاسخ کاوش‌ها را دریافت نکنید.

--ether-type type (Ethertype)

این گزینه فیلد Ethertype فریم اترنت را تنظیم می‌کند. Ethertype برای مشخص کردن پروتکلی که در بار بارگذاری‌شده (payload) کپسوله‌سازی شده، استفاده می‌شود. type می‌تواند به دو روش مختلف ارائه شود. می‌توانید از شماره‌های رسمی فهرست‌شده توسط IEEE[3] (مانند --ether-type 0x0800 برای IP نسخه ۴) یا یکی از نام‌های اختصاری در بخش “Ethernet Types” استفاده کنید.

این شناسه‌ها ممکن است به عنوان نام‌های اختصاری برای شماره‌های Ethertype داده‌شده به گزینه --arp-type استفاده شوند.

ipv4, ip, 4

Internet Protocol version 4 (نوع 0x0800).

ipv6, 6

Internet Protocol version 6 (نوع 0x86DD).

arp

Address Resolution Protocol (نوع 0x0806).

rarp

Reverse Address Resolution Protocol (نوع 0x8035).

frame-relay, frelay, fr

Frame Relay (نوع 0x0808).

ppp

Point-to-Point Protocol (نوع 0x880B).

gsmp

General Switch Management Protocol (نوع 0x880C).

mpls

Multiprotocol Label Switching (نوع 0x8847).

mps-ual, mps

Multiprotocol Label Switching with Upstream-assigned Label (نوع 0x8848).

mcap

Multicast Channel Allocation Protocol (نوع 0x8861).

pppoe-discovery, pppoe-d

PPP over Ethernet Discovery Stage (نوع 0x8863).

pppoe-session, pppoe-s

PPP over Ethernet Session Stage (نوع 0x8864).

ctag

Customer VLAN Tag Type (نوع 0x8100).

epon

Ethernet Passive Optical Network (نوع 0x8808).

pbnac

Port-based network access control (نوع 0x888E).

stag

Service VLAN tag identifier (نوع 0x88A8).

ethexp1

Local Experimental Ethertype 1 (نوع 0x88B5).

ethexp2

Local Experimental Ethertype 2 (نوع 0x88B6).

ethoui

OUI Extended Ethertype (نوع 0x88B7).

preauth

Pre-Authentication (نوع 0x88C7).

lldp

Link Layer Discovery Protocol (نوع 0x88CC).

mac-security, mac-sec, macsec

Media Access Control Security (نوع 0x88E5). mvrp
پروتکل Multiple VLAN Registration Protocol (نوع 0x88F5).

mmrp

پروتکل Multiple Multicast Registration Protocol (نوع 0x88F6).

frrr

پروتکل Fast Roaming Remote Request (نوع 0x890D).

--data hex string (پیوست داده‌های دودویی سفارشی به بسته‌های ارسالی)

این گزینه به شما اجازه می‌دهد داده‌های دودویی را به‌عنوان بار داده (payload) در بسته‌های ارسالی قرار دهید. hex string می‌تواند در هر یک از قالب‌های زیر مشخص شود: 0xAABBCCDDEEFF...، AABBCCDDEEFF... یا \xAA\xBB\xCC\xDD\xEE\xFF.... نمونه‌هایی از کاربرد عبارتند از --data 0xdeadbeef و --data \xCA\xFE\x09. توجه داشته باشید که اگر عددی مانند 0x00ff را مشخص کنید، هیچ تبدیلی در ترتیب بایت‌ها (byte-order) انجام نمی‌شود. مطمئن شوید اطلاعات را در ترتیب بایتی مورد انتظار گیرنده مشخص می‌کنید.

--data-string string (پیوست رشته سفارشی به بسته‌های ارسالی)

این گزینه به شما اجازه می‌دهد یک رشته معمولی را به‌عنوان بار داده در بسته‌های ارسالی بگنجانید. string می‌تواند شامل هر رشته‌ای باشد. با این حال، توجه داشته باشید که برخی نویسه‌ها ممکن است به محلی‌سازی (locale) سیستم شما وابسته باشند و گیرنده همان اطلاعات را نبیند. همچنین، مطمئن شوید رشته را درون علامت‌های نقل‌قول دوتایی قرار داده و نویسه‌های خاص را برای شل گریزدهی (escape) کنید. مثال: --data-string "Jimmy Jazz...".

--data-length len (پیوست داده‌های تصادفی به بسته‌های ارسالی)

این گزینه به شما اجازه می‌دهد len بایت داده تصادفی را به‌عنوان بار داده در بسته‌های ارسالی بگنجانید. len باید یک عدد صحیح در بازه [0–65400] باشد. با این حال، مقادیر بیشتر از 1400 توصیه نمی‌شوند زیرا ممکن است به دلیل محدودیت‌های MTU شبکه، ارسال بسته‌ها امکان‌پذیر نباشد.

«حالت اکو» (Echo Mode) یک تکنیک نوآورانه پیاده‌سازی‌شده در Nping است که به کاربران اجازه می‌دهد چگونگی تغییر بسته‌های شبکه را هنگام عبور در مسیر، از میزبان مبدأ تا دستگاه مقصد مشاهده کنند. اساساً، حالت اکو Nping را به دو بخش متمایز تبدیل می‌کند: کارساز اکو (Echo server) و کلاینت اکو (Echo client). کارساز اکو یک سرویس شبکه است که توانایی جذب بسته‌ها از شبکه و ارسال یک رونوشت از آن‌ها («اکو کردن آن‌ها») به کلاینت مبدأ را از طریق یک کانال جانبی TCP دارد. کلاینت اکو بخشی است که این بسته‌های شبکه را تولید کرده، به کارساز ارسال می‌کند، و نسخه اکوشده آن‌ها را از طریق کانال جانبی TCP که پیش‌تر با کارساز اکو برقرار کرده، دریافت می‌نماید.

این طرح به کلاینت اجازه می‌دهد تفاوت‌های بین بسته‌هایی را که ارسال می‌کند و آنچه در واقع توسط کارساز دریافت می‌شود را مشاهده کند. با ارسال رونوشت بسته‌های دریافتی توسط کارساز از طریق کانال جانبی، مواردی مانند دستگاه‌های NAT بلافاصله برای کلاینت آشکار می‌شوند، زیرا متوجه تغییرات در نشانی IP مبدأ (و حتی احتمالاً درگاه مبدأ) می‌شود. دستگاه‌های دیگر مانند مواردی که شکل‌دهی ترافیک (traffic shaping) انجام می‌دهند، اندازه پنجره‌های TCP را تغییر می‌دهند یا گزینه‌های TCP را به‌صورت شفاف بین میزبان‌ها اضافه می‌کنند نیز آشکار می‌شوند.

حالت اکو همچنین برای عیب‌یابی مشکلات مسیریابی و فایروال مفید است. از جمله موارد دیگر، می‌توان از آن برای تعیین این موضوع استفاده کرد که آیا ترافیک تولیدشده توسط کلاینت Nping در مسیر عبور دور ریخته می‌شود و هرگز به مقصد نمی‌رسد یا اینکه پاسخ‌ها هستند که برنمی‌گردند.

در درون، کلاینت و کارساز از طریق یک کانال رمزگذاری‌شده و احراز هویت‌شده با استفاده از Nping Echo Protocol (NEP) ارتباط برقرار می‌کنند، که مشخصات فنی آن را می‌توان در https://nmap.org/svn/nping/docs/EchoProtoRFC.txt یافت.

بندهای زیر گزینه‌های گوناگون موجود در حالت اکوی Nping را شرح می‌دهند.

--ec passphrase, --echo-client passphrase (اجرای کلاینت اکو)

این گزینه به Nping دستور می‌دهد تا به‌عنوان یک کلاینت اکو اجرا شود. passphrase دنباله‌ای از نویسه‌های ASCII است که برای تولید کلیدهای رمزنگاری مورد نیاز برای رمزگذاری و احراز هویت در یک نشست مشخص استفاده می‌شود. عبارت عبور باید رازی باشد که کارساز نیز از آن مطلع است، و می‌تواند شامل هر تعداد نویسه چاپ‌پذیر ASCII باشد. عبارت‌های عبوری که دارای فاصله یا نویسه‌های خاص هستند باید داخل علامت‌های نقل‌قول دوتایی قرار گیرند.

هنگام اجرای Nping به‌عنوان کلاینت اکو، بیشتر گزینه‌های حالت‌های عادی کاوش خام (raw probe) اعمال می‌شوند. کلاینت می‌تواند برای ارسال کاوش‌های خاص با استفاده از پرچم‌هایی مانند --tcp، --icmp یا --udp پیکربندی شود. فیلدهای سرایند پروتکل را می‌توان به‌صورت معمول با گزینه‌های مناسب دستکاری کرد (مانند --ttl، --seq، --icmp-type و غیره). تنها استثنا پرچم‌های مربوط به ARP هستند که در حالت اکو پشتیبانی نمی‌شوند، زیرا پروتکل‌هایی مانند ARP ارتباط نزدیکی با لایه پیوند داده دارند و کاوش‌های آن نمی‌توانند از بخش‌های مختلف شبکه عبور کنند.

--es passphrase, --echo-server passphrase (اجرای کارساز اکو)

این گزینه به Nping دستور می‌دهد تا به‌عنوان یک کارساز اکو اجرا شود. passphrase دنباله‌ای از نویسه‌های ASCII است که برای تولید کلیدهای رمزنگاری مورد نیاز برای رمزگذاری و احراز هویت در یک نشست مشخص استفاده می‌شود. عبارت عبور باید رازی باشد که کلاینت‌ها نیز از آن مطلع هستند، و می‌تواند شامل هر تعداد نویسه چاپ‌پذیر ASCII باشد. عبارت‌های عبوری که دارای فاصله یا نویسه‌های خاص هستند باید داخل علامت‌های نقل‌قول دوتایی قرار گیرند. توجه داشته باشید که اگرچه توصیه نمی‌شود، اما استفاده از عبارت عبور خالی با تعیین --echo-server "" امکان‌پذیر است. با این حال، اگر هدف شما راه‌اندازی یک کارساز اکوی عمومی است، بهتر است از گزینه --no-crypto استفاده کنید. برای جزئیات به بخش زیر مراجعه کنید.

--ep port, --echo-port port (تنظیم شماره درگاه TCP اکو)

این گزینه از Nping می‌خواهد تا شماره درگاه TCP مشخص‌شده را برای اتصال کانال جانبی اکو استفاده کند. اگر این گزینه همراه با --echo-server استفاده شود، درگاهی را مشخص می‌کند که کارساز روی آن منتظر اتصال می‌ماند. اگر همراه با --echo-client استفاده شود، درگاه مورد نظر برای اتصال در میزبان دوردست را مشخص می‌کند. به‌طور پیش‌فرض، از درگاه شماره 9929 استفاده می‌شود.

--nc, --no-crypto (غیرفعال‌سازی رمزگذاری و احراز هویت)

این گزینه از Nping می‌خواهد که در طول نشست اکو از هیچ عملیات رمزنگاری استفاده نکند. در عمل، این بدان معناست که داده‌های نشست کانال جانبی اکو به‌صورت متن آشکار (cleartext) منتقل شده و در طول مرحله برقراری نشست، هیچ احراز هویتی توسط کارساز یا کلاینت انجام نخواهد شد. هنگامی که --no-crypto استفاده می‌شود، عبارت عبور ارائه‌شده با --echo-server یا --echo-client نادیده گرفته می‌شود.

اگر Nping بدون پشتیبانی از openSSL کامپایل شده باشد، این گزینه باید مشخص شود. توجه داشته باشید که به دلایل فنی، همچنان لازم است یک عبارت عبور پس از پرچم‌های --echo-client یا --echo-server ارائه شود، هرچند که نادیده گرفته خواهد شد.

پرچم --no-crypto ممکن است هنگام راه‌اندازی یک کارساز اکوی عمومی مفید باشد، زیرا به کاربران اجازه می‌دهد بدون نیاز به هیچ عبارت عبور یا راز مشترکی به کارساز اکو متصل شوند. با این حال، اکیداً توصیه می‌شود که از --no-crypto استفاده نکنید مگر اینکه کاملاً ضروری باشد. کارسازهای اکوی عمومی باید طوری پیکربندی شوند که از عبارت عبور "public" یا عبارت عبور خالی (--echo-server "") استفاده کنند، چرا که استفاده از رمزنگاری نه تنها محرمانگی و احراز هویت، بلکه یکپارچگی پیام را نیز فراهم می‌کند.

--once (پاسخ‌گویی به یک کلاینت و خروج)

این گزینه از کارساز اکو می‌خواهد که پس از پاسخ‌گویی به یک کلاینت، خارج شود. این ویژگی زمانی مفید است که تنها برقراری یک نشست اکوی تکی مد نظر باشد، زیرا نیاز به دسترسی به میزبان دوردست برای خاموش کردن کارساز را از بین می‌برد.

--safe-payloads (صفر کردن داده‌های برنامه پیش از اکو کردن بسته)

این گزینه از کارساز اکو می‌خواهد پیش از اکو کردن بسته‌های کلاینت، هرگونه داده لایه کاربرد موجود در آن‌ها را پاک کند. هنگامی که این گزینه فعال است، کارساز اکو بسته‌های دریافتی از کلاینت‌های اکو را تجزیه کرده و تلاش می‌کند مشخص کند که آیا داده‌ای فراتر از لایه انتقال دارند یا خیر. در صورت یافتن چنین داده‌هایی، پیش از ارسال بسته‌ها به کلاینت اکوی مربوطه، روی آن‌ها با صفر رونویسی می‌شود.

کارسازهای اکو می‌توانند چندین کلاینت همزمان را مدیریت کنند که چندین نشست اکو را به‌طور موازی اجرا می‌کنند. برای تعیین اینکه کدام بسته باید به کدام کلاینت و از طریق کدام نشست اکو شود، کارساز اکو از یک الگوریتم اکتشافی (heuristic) استفاده می‌کند. گرچه ما تمام تدابیر امنیتی ممکنی را که به ذهنمان می‌رسید برای جلوگیری از دریافت بسته اکوشده‌ای که کلاینت آن را ایجاد نکرده اتخاذ کرده‌ایم، اما همواره این ریسک وجود دارد که الگوریتم دچار خطا شده و بسته‌ای را به کلاینت اشتباهی تحویل دهد. گزینه --safe-payloads برای کارسازهای اکوی عمومی یا استقرارهای حیاتی که تحمل چنین خطایی در آن‌ها وجود ندارد، مفید است.

مثال‌های زیر نشان می‌دهند چگونه می‌توان از حالت اکوی Nping برای کشف دستگاه‌های میانی استفاده کرد.

مثال ۲. کشف دستگاه‌های NAT

# nping --echo-client "public" echo.nmap.org --udp 
Starting Nping ( https://nmap.org/nping )
SENT (1.0970s) UDP 10.1.20.128:53 > 178.79.165.17:40125 ttl=64 id=32523 iplen=28 
CAPT (1.1270s) UDP 80.38.10.21:45657 > 178.79.165.17:40125 ttl=54 id=32523 iplen=28 
RCVD (1.1570s) ICMP 178.79.165.17 > 10.1.20.128 Port unreachable (type=3/code=3) ttl=49 id=16619 iplen=56 
[...]
SENT (5.1020s) UDP 10.1.20.128:53 > 178.79.165.17:40125 ttl=64 id=32523 iplen=28 
CAPT (5.1335s) UDP 80.38.10.21:45657 > 178.79.165.17:40125 ttl=54 id=32523 iplen=28 
RCVD (5.1600s) ICMP 178.79.165.17 > 10.1.20.128 Port unreachable (type=3/code=3) ttl=49 id=16623 iplen=56 
Max rtt: 60.628ms | Min rtt: 58.378ms | Avg rtt: 59.389ms
Raw packets sent: 5 (140B) | Rcvd: 5 (280B) | Lost: 0 (0.00%)| Echoed: 5 (140B) 
Tx time: 4.00459s | Tx bytes/s: 34.96 | Tx pkts/s: 1.25
Rx time: 5.00629s | Rx bytes/s: 55.93 | Rx pkts/s: 1.00
Nping done: 1 IP address pinged in 6.18 seconds

خروجی به‌وضوح حضور یک دستگاه NAT را در شبکه محلی کلاینت نشان می‌دهد. توجه کنید که چگونه بسته جذب‌شده (CAPT) با بسته ارسالی (SENT) تفاوت دارد: نشانی مبدأ بسته‌های اصلی در محدوده رزروشده 10.0.0.0/8 قرار دارد، در حالی که نشانی دیده‌شده توسط کارساز 80.38.10.21، یعنی نشانی سمت اینترنت دستگاه NAT است. درگاه مبدأ نیز توسط دستگاه تغییر یافته است. خطی که با RCVD شروع می‌شود، مربوط به پاسخ‌های تولیدشده توسط پشته TCP/IP دستگاهی است که کارساز اکو روی آن اجرا می‌شود.

مثال ۳. کشف یک پراکسی شفاف

# nping --echo-client "public" echo.nmap.org --tcp -p80
Starting Nping ( https://nmap.org/nping )
SENT (1.2160s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40  seq=567704200 win=1480 
RCVD (1.2180s) TCP 178.79.165.17:80 > 10.0.1.77:41659 SA ttl=128 id=13177 iplen=44  seq=3647106954 win=16384 <mss 1460>
SENT (2.2150s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40  seq=567704200 win=1480 
SENT (3.2180s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40  seq=567704200 win=1480 
SENT (4.2190s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40  seq=567704200 win=1480 
SENT (5.2200s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40  seq=567704200 win=1480 
Max rtt: 2.062ms | Min rtt: 2.062ms | Avg rtt: 2.062ms
Raw packets sent: 5 (200B) | Rcvd: 1 (46B) | Lost: 4 (80.00%)| Echoed: 0 (0B) 
Tx time: 4.00504s | Tx bytes/s: 49.94 | Tx pkts/s: 1.25
Rx time: 5.00618s | Rx bytes/s: 9.19 | Rx pkts/s: 0.20
Nping done: 1 IP address pinged in 6.39 seconds

در این مثال، تحلیل خروجی اندکی پیچیده‌تر است. عدم وجود پیام‌های خطا نشان می‌دهد که کلاینت اکو با موفقیت یک نشست اکو با کارساز برقرار کرده است. با این وجود، هیچ بسته CAPT در خروجی دیده نمی‌شود. این بدان معناست که هیچ‌یک از بسته‌های ارسالی به کارساز نرسیده‌اند. جالب اینجاست که یک بسته TCP SYN-ACK در پاسخ به نخستین بسته TCP-SYN دریافت شده است (و همچنین مشخص است که میزبان هدف درگاه 80 باز ندارد). این رفتار حضور یک کارساز حافظه پنهان پراکسی وب شفاف (که در این مورد، یک سرور قدیمی MS ISA است) را آشکار می‌سازد..SH "گزینه‌های زمان‌بندی و کارایی (TIMING AND PERFORMANCE OPTIONS)"

--delay time (تأخیر بین پروب‌ها)

این گزینه به شما امکان می‌دهد کنترل کنید که Nping چه مدت پیش از ارسال پروب بعدی منتظر بماند. مانند بسیاری از ابزارهای ping دیگر، تأخیر پیش‌فرض یک ثانیه است. time باید یک عدد صحیح مثبت یا عدد ممیز شناور باشد. به‌طور پیش‌فرض بر حسب ثانیه مشخص می‌شود، با این حال می‌توانید با افزودن ms برای میلی‌ثانیه، s برای ثانیه، m برای دقیقه، یا h برای ساعت، یک واحد صریح تعیین کنید (مانند 2.5s، 45m، 2h).

--rate rate (ارسال پروب‌ها با نرخ مشخص)

این گزینه تعداد پروب‌هایی را که Nping باید در هر ثانیه ارسال کند مشخص می‌کند. این گزینه و --delay معکوس یکدیگرند؛ --rate 20 همانند --delay 0.05 است. اگر هر دو گزینه استفاده شوند، تنها آخرین مورد در فهرست پارامترها اعمال می‌شود.

-h، --help (نمایش راهنما)

اطلاعات راهنما را نمایش می‌دهد و خارج می‌شود.

-V، --version (نمایش نسخه)

شماره نسخهٔ برنامه را نمایش می‌دهد و خارج می‌شود.

-c rounds، --count rounds (توقف پس از تعداد مشخصی دور)

این گزینه به شما امکان می‌دهد تعداد دفعاتی را که Nping باید روی میزبان‌های مقصد (و در برخی موارد درگاه‌های مقصد) دور بزند مشخص کنید. Nping به این‌ها “دور” می‌گوید. در یک اجرای ساده تنها با یک مقصد (و تنها یک درگاه مقصد در حالت‌های TCP/UDP)، تعداد دورها برابر با تعداد پروب‌های ارسال‌شده به میزبان مقصد است. با این حال، در اجراهای پیچیده‌تر که Nping در برابر چندین مقصد و چندین درگاه اجرا می‌شود، تعداد دورها برابر با تعداد دفعاتی است که Nping یک مجموعهٔ کامل از پروب‌ها را که تمام IPهای مقصد و تمام درگاه‌های مقصد را پوشش می‌دهد، ارسال می‌کند. برای نمونه، اگر از Nping خواسته شود بسته‌های TCP SYN را به میزبان‌های 192.168.1.0-255 و درگاه‌های 80 و 433 بفرستد، آن‌گاه 256 × 2 = 512 بسته در یک دور ارسال می‌شوند. بنابراین اگر -c 100 را مشخص کنید، Nping تعداد 100 بار روی میزبان‌ها و درگاه‌های مختلف مقصد دور خواهد زد، و در مجموع 256 × 2 × 100 = 51200 بسته ارسال می‌کند. به‌طور پیش‌فرض Nping به مدت ۵ دور اجرا می‌شود. اگر مقدار 0 مشخص شود، Nping به‌طور مداوم اجرا خواهد شد.

-e name، --interface name (تنظیم رابط شبکه مورد استفاده)

این گزینه به Nping می‌گوید از چه رابطی باید برای ارسال و دریافت بسته‌ها استفاده شود. Nping باید بتواند این را به‌طور خودکار تشخیص دهد، اما در صورتی که نتواند، به شما اطلاع خواهد داد. name باید نام یک رابط شبکهٔ موجود با یک آدرس IP تخصیص‌یافته باشد.

--privileged (فرض کردن اینکه کاربر دارای دسترسی کامل است)

به Nping می‌گوید فرض کند که مجوزهای لازم برای ارسال‌های raw socket، شنود بسته (packet sniffing) و عملیات مشابهی که معمولاً نیازمند دسترسی‌های ویژه هستند را دارد. به‌طور پیش‌فرض، اگر چنین عملیاتی توسط کاربری که دسترسی root یا administrator ندارد درخواست شود، Nping خارج می‌شود. این گزینه ممکن است در لینوکس، BSD یا سیستم‌های مشابهی که می‌توانند طوری پیکربندی شوند که به کاربران غیرممتاز اجازهٔ ارسال raw-packet را بدهند، مفید باشد. متغیر محیطی NPING_PRIVILEGED می‌تواند به عنوان جایگزینی برای استفاده از --privileged تنظیم شود.

--unprivileged (فرض کردن اینکه کاربر فاقد دسترسی‌های سوکت خام است)

این گزینه برعکس --privileged است. به Nping می‌گوید با کاربر طوری رفتار کند که گویی فاقد مجوزهای raw socket و شنود شبکه است. این گزینه برای آزمایش، اشکال‌زدایی یا زمانی که عملکرد شبکهٔ خام سیستم‌عامل شما به نوعی دچار اختلال شده است، مفید است. متغیر محیطی NPING_UNPRIVILEGED می‌تواند به عنوان جایگزینی برای استفاده از --unprivileged تنظیم شود.

--send-eth (استفاده از ارسال خام در لایه اترنت)

از Nping می‌خواهد بسته‌ها را به‌جای لایهٔ بالاتر IP (لایه شبکه)، در لایهٔ خام اترنت (لایه پیوند داده) ارسال کند. به‌طور پیش‌فرض، Nping روشی را انتخاب می‌کند که عموماً برای پلتفرمی که روی آن اجرا می‌شود بهترین است. سوکت‌های خام (لایهٔ IP) معمولاً برای ماشین‌های Unix کارآمدترین هستند، در حالی که فریم‌های اترنت برای کارکرد در ویندوز الزامی هستند زیرا مایکروسافت پشتیبانی از سوکت‌های خام را غیرفعال کرده است. علی‌رغم این گزینه، هنگامی که چارهٔ دیگری نباشد (مانند اتصالات غیر اترنتی)، Nping همچنان از بسته‌های IP خام استفاده می‌کند.

--send-ip (ارسال در سطح خام IP)

از Nping می‌خواهد که بسته‌ها را از طریق سوکت‌های خام IP ارسال کند، به‌جای اینکه فریم‌های اترنت سطح پایین‌تر را بفرستد. این گزینه مکمل گزینهٔ --send-eth است.

--bpf-filter filter spec --filter filter spec (تنظیم فیلتر BPF سفارشی)

این گزینه به شما اجازه می‌دهد از یک فیلتر BPF سفارشی استفاده کنید. به‌طور پیش‌فرض Nping فیلتری را انتخاب می‌کند که برای دریافت رایج‌ترین پاسخ‌ها به پروب‌های ارسالی ویژه در نظر گرفته شده است. برای نمونه، هنگام ارسال بسته‌های TCP، فیلتر طوری تنظیم می‌شود که بسته‌هایی را که درگاه مقصد آن‌ها با درگاه مبدأ پروب مطابقت دارد یا پیام‌های خطای ICMP را که ممکن است توسط مقصد یا هر دستگاه میانی دیگری در نتیجهٔ پروب تولید شده باشند، ضبط کند. اگر به هر دلیلی انتظار بسته‌های غیرمعمولی در پاسخ به پروب‌های ارسالی دارید یا صرفاً می‌خواهید نوع خاصی از ترافیک را شنود کنید، می‌توانید با استفاده از نحو BPF مورد استفاده در ابزارهایی مانند tcpdump یک فیلتر سفارشی تعیین کنید. برای اطلاعات بیشتر مستندات را در http://www.tcpdump.org ببینید.

-H، --hide-sent (عدم نمایش بسته‌های ارسال‌شده)

این گزینه به Nping می‌گوید اطلاعات مربوط به بسته‌های ارسال‌شده را چاپ نکند. این می‌تواند هنگام استفاده از تأخیرهای بسیار کوتاه بین پروب‌ها (یعنی هنگام ایجاد سیلاب بسته یا flooding) مفید باشد، زیرا چاپ اطلاعات در خروجی استاندارد هزینهٔ پردازشی دارد و غیرفعال کردن آن احتمالاً می‌تواند سرعت کار را کمی بالا ببرد. همچنین، ممکن است هنگام استفاده از Nping برای شناسایی میزبان‌های فعال یا درگاه‌های باز مفید باشد (مانند ارسال پروب به تمام درگاه‌های TCP در یک زیرشبکهٔ /24). در این حالت، ممکن است کاربران نخواهند هزاران پروب ارسال‌شده را ببینند، بلکه فقط پاسخ‌های تولیدشده توسط میزبان‌های فعال را مشاهده کنند.

-N، --no-capture (عدم تلاش برای ضبط پاسخ‌ها)

این گزینه به Nping می‌گوید از ضبط بسته‌ها صرف‌نظر کند. این بدان معناست که بسته‌ها در پاسخ به پروب‌های ارسالی پردازش یا نمایش داده نخواهند شد. این امر می‌تواند هنگام انجام ارسال‌های سیل‌آسا و آزمون‌های فشار بر پشتهٔ شبکه مفید باشد. توجه داشته باشید که با تعیین این گزینه، بیشتر آمارهای ارائه‌شده در پایان اجرا بی‌فایده خواهند بود. این گزینه در حالت TCP Connect کار نمی‌کند.

-v[level]، --verbose [level] (افزایش یا تنظیم سطح پرگویی)

سطح پرگویی (verbosity) را افزایش می‌دهد و باعث می‌شود Nping در طول اجرای خود اطلاعات بیشتری چاپ کند. ۹ سطح پرگویی وجود دارد (-4 تا 4). هر بار تکرار -v سطح پرگویی را یک واحد افزایش می‌دهد (از مقدار پیش‌فرض آن یعنی سطح 0). هر بار تکرار گزینهٔ -q سطح پرگویی را یک واحد کاهش می‌دهد. همچنین می‌توانید سطح را مستقیماً مشخص کنید، مانند -v3 یا -v-1. سطوح موجود عبارتند از:

سطح -4

کاملاً بدون خروجی. در برخی شرایط ممکن است نخواهید Nping هیچ خروجی تولید کند (مانند زمانی که یکی از همکارانتان از پشت سر نگاه می‌کند). در این حالت سطح -4 می‌تواند مفید باشد زیرا اگرچه هیچ بستهٔ پاسخی را نخواهید دید، پروب‌ها همچنان ارسال می‌شوند.

سطح -3

مانند سطح -4 است اما پیام‌های خطای مهلک را نمایش می‌دهد تا بتوانید ببینید آیا Nping در حال اجراست یا به دلیل خطایی متوقف شده است.

سطح -2

مانند سطح -3 است اما هشدارها و خطاهای قابل بازیابی را نیز نمایش می‌دهد.

سطح -1

اطلاعات مرسوم زمان اجرا (نسخه، زمان شروع، آمارها و غیره) را نمایش می‌دهد اما بسته‌های ارسالی یا دریافتی را نمایش نمی‌دهد.

سطح 0

این سطح پرگویی پیش‌فرض است. مانند سطح -1 عمل می‌کند اما بسته‌های ارسالی و دریافتی و برخی اطلاعات مهم دیگر را نیز نشان می‌دهد.

سطح 1

مانند سطح 0 است اما اطلاعات دقیقی دربارهٔ زمان‌بندی، پرچم‌ها، جزئیات پروتکل و غیره را نمایش می‌دهد.

سطح 2

مانند سطح 1 است اما اطلاعات بسیار مفصلی دربارهٔ بسته‌های ارسالی و دریافتی و دیگر اطلاعات جالب‌توجه ارائه می‌دهد.

سطح 3

مانند سطح 2 است اما همچنین تخلیهٔ خام شانزده‌شانزدهی (hexadecimal dump) بسته‌های ارسالی و دریافتی را نمایش می‌دهد.

سطح 4 و بالاتر

مشابه سطح 3.

-q[level]، --reduce-verbosity [level] (کاهش سطح پرگویی)

سطح پرگویی را کاهش می‌دهد و باعث می‌شود Nping در طول اجرای خود اطلاعات کمتری چاپ کند.

-d[level] (افزایش یا تنظیم سطح اشکال‌زدایی)

هنگامی که حتی حالت پرگویی نیز داده‌های کافی را در اختیارتان نمی‌گذارد، قابلیت اشکال‌زدایی در دسترس است تا شما را با حجم انبوهی از اطلاعات روبه‌رو کند! همانند -v، اشکال‌زدایی با پرچم خط فرمان -d فعال می‌شود و سطح اشکال‌زدایی را می‌توان با مشخص کردن چندبارهٔ آن افزایش داد. ۷ سطح اشکال‌زدایی وجود دارد (0 تا 6). هر بار تکرار -d سطح اشکال‌زدایی را یک واحد افزایش می‌دهد. برای تنظیم مستقیم سطح، یک آرگومان به -d بدهید؛ برای نمونه -d4.

خروجی اشکال‌زدایی زمانی مفید است که به وجود اشکال (bug) در Nping مشکوک باشید، یا صرفاً در مورد اینکه Nping چه می‌کند و چرا، سردرگم شده‌اید. از آنجا که این ویژگی بیشتر برای توسعه‌دهندگان طراحی شده است، خطوط اشکال‌زدایی همیشه خودتوضیح نیستند. ممکن است چیزی شبیه به این دریافت کنید:

NSOCK (1.0000s) Callback: TIMER SUCCESS for EID 12; tcpconnect_event_handler(): Received callback of type TIMER with status SUCCESS

اگر خطی را متوجه نمی‌شوید، تنها راه چارهٔ شما نادیده گرفتن آن، جستجوی آن در کد منبع، یا درخواست کمک از فهرست پستی توسعه (nmap-dev) است. برخی خطوط خودتوضیح هستند، اما با افزایش سطح اشکال‌زدایی، پیام‌ها مبهم‌تر می‌شوند. سطوح موجود عبارتند از:

سطح 0

سطح 0. بدون هیچ‌گونه اطلاعات اشکال‌زدایی. این سطح پیش‌فرض است.

سطح 1

در این سطح، تنها اطلاعات اشکال‌زدایی بسیار مهم یا سطح بالا چاپ خواهند شد. سطح ۲
همانند سطح ۱، اما اطلاعات اشکال‌زدایی مهم یا سطح‌متوسط را نیز نمایش می‌دهد

سطح ۳

همانند سطح ۲، اما اطلاعات اشکال‌زدایی عادی و سطح‌پایین را نیز نمایش می‌دهد.

سطح ۴

همانند سطح ۳، اما پیام‌هایی را نمایش می‌دهد که فقط یک خورهٔ واقعی Nping مایل به دیدن آن‌ها است.

سطح ۵

همانند سطح ۴، اما اطلاعات اشکال‌زدایی پایه مربوط به کتابخانه‌های خارجی مانند Nsock را فعال می‌کند.

سطح ۶

همانند سطح ۵، اما اطلاعات اشکال‌زدایی کامل و بسیار دقیق مربوط به کتابخانه‌های خارجی مانند Nsock را فعال می‌کند.

مانند نویسندگانش، Nping نیز بی‌نقص نیست. اما شما می‌توانید با ارسال گزارش باگ یا حتی نوشتن وصله‌ها، به بهتر شدن آن کمک کنید. اگر Nping آن‌طور که انتظار دارید رفتار نمی‌کند، ابتدا به آخرین نسخهٔ موجود در https://nmap.org ارتقا دهید. اگر مشکل همچنان پابرجاست، کمی تحقیق کنید تا مشخص شود آیا پیش‌تر شناسایی و برطرف شده است یا خیر. جستجوی مشکل یا پیام خطا در Google را امتحان کنید، زیرا انجمن‌های بسیاری را گردآوری و پوشش می‌دهد. اگر به نتیجه‌ای نرسیدید، یک مسئله (Issue) در سامانهٔ پیگیری ما (http://issues.nmap.org) باز کنید و/یا گزارش باگ را به <dev@nmap.org> ایمیل کنید. چنانچه پیش از ارسال، در فهرست پستی nmap-dev عضو شوید، پیام شما از مرحلهٔ بازبینی و تأیید مدیر عبور کرده و سریع‌تر منتقل می‌شود. جهت عضویت به https://nmap.org/mailman/listinfo/dev مراجعه کنید. لطفاً هر آنچه دربارهٔ مشکل دریافته‌اید، به همراه نسخهٔ Nping مورد استفاده و نسخهٔ سیستم‌عاملی که روی آن اجرا می‌شود را ذکر کنید. سایر پیشنهادها برای بهبود Nping نیز می‌تواند به فهرست پستی توسعه‌دهندگان Nmap ارسال شود.

اگر توانایی نوشتن وصله‌ای جهت بهبود Nping یا رفع یک باگ را دارید، این حتی بهتر هم خواهد بود! دستورالعمل‌های ارسال وصله یا درخواست‌های دریافت گیت (git pull requests) در نشانی زیر موجود است: https://github.com/nmap/nmap/blob/master/CONTRIBUTING.md

مسائل به‌ویژه حساس، مانند گزارش‌های امنیتی، می‌توانند مستقیماً به نشانی <fyodor@nmap.org> برای شخص Fyodor ارسال شوند. بقیهٔ گزارش‌ها و نظرات باید از طریق فهرست پستی توسعه یا سامانهٔ پیگیری مسائل ارسال شوند، زیرا افراد بیشتری آن‌ها را خوانده، دنبال کرده و پاسخ می‌دهند.

Luis MartinGarcia <luis.mgarc@gmail.com> (http://www.luismg.com)

Fyodor <fyodor@nmap.org> (https://insecure.org)

1.
شماره‌های رسمی نوع اختصاص‌یافته توسط IANA
2.
شماره‌های رسمی اختصاص‌یافته توسط IANA
3.
شماره‌های رسمی فهرست‌شده توسط IEEE
03/27/2026 Nping