{
  "name": "ping",
  "description": "Send ICMP ECHO_REQUEST to network hosts",
  "options": [
    {
      "names": [
        "-A"
      ],
      "description": "Audible. Output a bell (ASCII 0x07) character when no packet is received before the next packet is transmitted. To cater for round-trip times that are longer than the interval between trans- missions,"
    },
    {
      "names": [
        "-a"
      ],
      "description": "Audible. Include a bell (ASCII 0x07) character in the output when any packet is received. This option is ignored if other format options are present"
    },
    {
      "names": [
        "-b"
      ],
      "description": "Bind the socket to interface boundif for sending. This option is an Apple addition",
      "takes_arg": true,
      "arg": {
        "name": "boundif"
      }
    },
    {
      "names": [
        "-C"
      ],
      "description": "Prohibit the socket from using the cellular network interface. This option is an Apple addition"
    },
    {
      "names": [
        "-c"
      ],
      "description": "Stop after sending (and receiving) count ECHO_RESPONSE packets. If this option is not specified, ping will operate until inter- rupted. If this option is specified in conjunction with ping sweeps, eac",
      "takes_arg": true,
      "arg": {
        "name": "count"
      }
    },
    {
      "names": [
        "-D"
      ],
      "description": "Set the Don't Fragment bit"
    },
    {
      "names": [
        "-d"
      ],
      "description": "Set the SO_DEBUG option on the socket being used"
    },
    {
      "names": [
        "-f"
      ],
      "description": "Flood ping. Outputs packets as fast as they come back or one hundred times per second, whichever is more. For every ECHO_REQUEST sent a period ``.'' is printed, while for every ECHO_REPLY received a b"
    },
    {
      "names": [
        "-G"
      ],
      "description": "Sweepmaxsize Specify the maximum size of ICMP payload when sending sweeping pings. This option is required for ping sweeps",
      "takes_arg": true,
      "arg": {
        "name": "count"
      }
    },
    {
      "names": [
        "-g"
      ],
      "description": "Specify the size of ICMP payload to start with when sending sweeping pings",
      "takes_arg": true,
      "arg": {
        "name": "sweepminsize"
      }
    },
    {
      "names": [
        "-h"
      ],
      "description": "Specify the number of bytes to increment the size of ICMP payload after each sweep when sending sweeping pings",
      "takes_arg": true,
      "arg": {
        "name": "sweepincrsize"
      }
    },
    {
      "names": [
        "-I"
      ],
      "description": "Source multicast packets with the given interface address. This flag only applies if the ping destination is a multicast address",
      "takes_arg": true,
      "arg": {
        "name": "iface"
      }
    },
    {
      "names": [
        "-i"
      ],
      "description": "Wait wait seconds between sending each packet. The default is to wait for one second between each packet. The wait time may be fractional, but only the super-user may specify values less than 0.1 seco",
      "takes_arg": true,
      "arg": {
        "name": "wait"
      }
    },
    {
      "names": [
        "-k"
      ],
      "description": "Specifies the traffic class to use for sending ICMP packets. By default ping uses the control traffic class (CTL). This option is an Apple addition",
      "takes_arg": true,
      "arg": {
        "name": "trafficclass",
        "suggestions": [
          "BK_SYS",
          "BK",
          "BE",
          "RD",
          "OAM",
          "AV",
          "RV",
          "VI",
          "VO",
          "CTL"
        ]
      }
    },
    {
      "names": [
        "-K"
      ],
      "description": "Specifies the network service type to use for sending ICMP pack- ets. Note this overrides the default traffic class (-k can still be specified after -K to use both). This option is an Apple addition",
      "takes_arg": true,
      "arg": {
        "name": "netservicetype",
        "suggestions": [
          "BK_SYS",
          "BK",
          "BE",
          "RV",
          "AV",
          "RD",
          "OAM",
          "VI",
          "SIG",
          "VO"
        ]
      }
    },
    {
      "names": [
        "-L"
      ],
      "description": "Suppress loopback of multicast packets. This flag only applies if the ping destination is a multicast address"
    },
    {
      "names": [
        "-l"
      ],
      "description": "If preload is specified, ping sends that many packets as fast as possible before falling into its normal mode of behavior. Only the super-user may use this option",
      "takes_arg": true,
      "arg": {
        "name": "preload"
      }
    },
    {
      "names": [
        "-M"
      ],
      "description": "Use ICMP_MASKREQ or ICMP_TSTAMP instead of ICMP_ECHO. For mask, print the netmask of the remote machine. Set the net.inet.icmp.maskrepl MIB variable to enable ICMP_MASKREPLY. For time, print the origi",
      "takes_arg": true,
      "arg": {
        "name": "mask | time"
      }
    },
    {
      "names": [
        "-m"
      ],
      "description": "Set the IP Time To Live for outgoing packets. If not specified, the kernel uses the value of the net.inet.ip.ttl MIB variable",
      "takes_arg": true,
      "arg": {
        "name": "ttl"
      }
    },
    {
      "names": [
        "-n"
      ],
      "description": "Numeric output only. No attempt will be made to lookup symbolic names for host addresses"
    },
    {
      "names": [
        "-o"
      ],
      "description": "Exit successfully after receiving one reply packet"
    },
    {
      "names": [
        "-P"
      ],
      "description": "Policy specifies IPsec policy for the ping session. For details please refer to ipsec(4) and ipsec_set_policy(3)",
      "takes_arg": true,
      "arg": {
        "name": "policy"
      }
    },
    {
      "names": [
        "-p"
      ],
      "description": "You may specify up to 16 'pad' bytes to fill out the packet you send. This is useful for diagnosing data-dependent problems in a network. For example, '-p ff' will cause the sent packet to be filled w",
      "takes_arg": true,
      "arg": {
        "name": "pattern"
      }
    },
    {
      "names": [
        "-Q"
      ],
      "description": "Somewhat quiet output. Don't display ICMP error messages that are in response to our query messages. Originally, the -v flag was required to display such errors, but -v displays all ICMP error message"
    },
    {
      "names": [
        "-q"
      ],
      "description": "Quiet output. Nothing is displayed except the summary lines at startup time and when finished"
    },
    {
      "names": [
        "-R"
      ],
      "description": "Record route. Includes the RECORD_ROUTE option in the ECHO_REQUEST packet and displays the route buffer on returned packets. Note that the IP header is only large enough for nine such routes; the trac"
    },
    {
      "names": [
        "-r"
      ],
      "description": "Bypass the normal routing tables and send directly to a host on an attached network. If the host is not on a directly-attached network, an error is returned. This option can be used to ping a local ho"
    },
    {
      "names": [
        "-S"
      ],
      "description": "Use the following IP address as the source address in outgoing packets. On hosts with more than one IP address, this option can be used to force the source address to be something other than the IP ad",
      "takes_arg": true,
      "arg": {
        "name": "src_addr"
      }
    },
    {
      "names": [
        "-s"
      ],
      "description": "Specify the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data. This option cannot be used with ping sweeps",
      "takes_arg": true,
      "arg": {
        "name": "packetsize"
      }
    },
    {
      "names": [
        "-T"
      ],
      "description": "Set the IP Time To Live for multicasted packets. This flag only applies if the ping destination is a multicast address",
      "takes_arg": true,
      "arg": {
        "name": "ttl"
      }
    },
    {
      "names": [
        "-t"
      ],
      "description": "Specify a timeout, in seconds, before ping exits regardless of how many packets have been received",
      "takes_arg": true,
      "arg": {
        "name": "timeout"
      }
    },
    {
      "names": [
        "-v"
      ],
      "description": "Verbose output. ICMP packets other than ECHO_RESPONSE that are received are listed"
    },
    {
      "names": [
        "-W"
      ],
      "description": "Time in milliseconds to wait for a reply for each packet sent. If a reply arrives later, the packet is not printed as replied, but considered as replied when calculating statistics",
      "takes_arg": true,
      "arg": {
        "name": "waittime"
      }
    },
    {
      "names": [
        "-z"
      ],
      "description": "Use the specified type of service",
      "takes_arg": true,
      "arg": {
        "name": "tos"
      }
    },
    {
      "names": [
        "--apple-connect"
      ],
      "description": "Connects the socket to the destination address"
    },
    {
      "names": [
        "--apple-time"
      ],
      "description": "Prints the time a packet was received"
    }
  ],
  "args": [
    {
      "name": "Hostname or IP"
    }
  ]
}
