Lines 39-72
Link Here
|
39 |
|
39 |
|
40 |
static struct ago_optlist hping_optlist[] = { |
40 |
static struct ago_optlist hping_optlist[] = { |
41 |
{ 'c', "count", OPT_COUNT, AGO_NEEDARG }, |
41 |
{ 'c', "count", OPT_COUNT, AGO_NEEDARG }, |
42 |
{ 'i', "interval", OPT_INTERVAL, AGO_NEEDARG|AGO_EXCEPT0 }, |
42 |
{ 'i', "interval", OPT_INTERVAL, AGO_NEEDARG }, |
43 |
{ 'n', "numeric", OPT_NUMERIC, AGO_NOARG }, |
43 |
{ 'n', "numeric", OPT_NUMERIC, AGO_NOARG }, |
44 |
{ 'q', "quiet", OPT_QUIET, AGO_NOARG }, |
44 |
{ 'q', "quiet", OPT_QUIET, AGO_NOARG }, |
45 |
{ 'I', "interface", OPT_INTERFACE, AGO_NEEDARG }, |
45 |
{ 'I', "interface", OPT_INTERFACE, AGO_NEEDARG }, |
46 |
{ 'h', "help", OPT_HELP, AGO_NOARG }, |
46 |
{ 'h', "help", OPT_HELP, AGO_NOARG }, |
47 |
{ 'v', "version", OPT_VERSION, AGO_NOARG }, |
47 |
{ 'v', "version", OPT_VERSION, AGO_NOARG }, |
48 |
{ 'p', "destport", OPT_DESTPORT, AGO_NEEDARG|AGO_EXCEPT0 }, |
48 |
{ 'p', "destport", OPT_DESTPORT, AGO_NEEDARG }, |
49 |
{ 's', "baseport", OPT_BASEPORT, AGO_NEEDARG|AGO_EXCEPT0 }, |
49 |
{ 's', "baseport", OPT_BASEPORT, AGO_NEEDARG }, |
50 |
{ 't', "ttl", OPT_TTL, AGO_NEEDARG }, |
50 |
{ 't', "ttl", OPT_TTL, AGO_NEEDARG }, |
51 |
{ 'N', "id", OPT_ID, AGO_NEEDARG|AGO_EXCEPT0 }, |
51 |
{ 'N', "id", OPT_ID, AGO_NEEDARG }, |
52 |
{ 'w', "win", OPT_WIN, AGO_NEEDARG|AGO_EXCEPT0 }, |
52 |
{ 'w', "win", OPT_WIN, AGO_NEEDARG }, |
53 |
{ 'a', "spoof", OPT_SPOOF, AGO_NEEDARG|AGO_EXCEPT0 }, |
53 |
{ 'a', "spoof", OPT_SPOOF, AGO_NEEDARG|AGO_EXCEPT0 }, |
54 |
{ 'F', "fin", OPT_FIN, AGO_NOARG|AGO_EXCEPT0 }, |
54 |
{ 'F', "fin", OPT_FIN, AGO_NOARG }, |
55 |
{ 'S', "syn", OPT_SYN, AGO_NOARG|AGO_EXCEPT0 }, |
55 |
{ 'S', "syn", OPT_SYN, AGO_NOARG }, |
56 |
{ 'R', "rst", OPT_RST, AGO_NOARG|AGO_EXCEPT0 }, |
56 |
{ 'R', "rst", OPT_RST, AGO_NOARG }, |
57 |
{ 'P', "push", OPT_PUSH, AGO_NOARG|AGO_EXCEPT0 }, |
57 |
{ 'P', "push", OPT_PUSH, AGO_NOARG }, |
58 |
{ 'A', "ack", OPT_ACK, AGO_NOARG|AGO_EXCEPT0 }, |
58 |
{ 'A', "ack", OPT_ACK, AGO_NOARG }, |
59 |
{ 'U', "urg", OPT_URG, AGO_NOARG|AGO_EXCEPT0 }, |
59 |
{ 'U', "urg", OPT_URG, AGO_NOARG }, |
60 |
{ 'X', "xmas", OPT_XMAS, AGO_NOARG|AGO_EXCEPT0 }, |
60 |
{ 'X', "xmas", OPT_XMAS, AGO_NOARG }, |
61 |
{ 'Y', "ymas", OPT_YMAS, AGO_NOARG|AGO_EXCEPT0 }, |
61 |
{ 'Y', "ymas", OPT_YMAS, AGO_NOARG }, |
62 |
{ 'f', "frag", OPT_FRAG, AGO_NOARG|AGO_EXCEPT0 }, |
62 |
{ 'f', "frag", OPT_FRAG, AGO_NOARG }, |
63 |
{ 'x', "morefrag", OPT_MOREFRAG, AGO_NOARG|AGO_EXCEPT0 }, |
63 |
{ 'x', "morefrag", OPT_MOREFRAG, AGO_NOARG }, |
64 |
{ 'y', "dontfrag", OPT_DONTFRAG, AGO_NOARG }, |
64 |
{ 'y', "dontfrag", OPT_DONTFRAG, AGO_NOARG }, |
65 |
{ 'g', "fragoff", OPT_FRAGOFF, AGO_NEEDARG|AGO_EXCEPT0 }, |
65 |
{ 'g', "fragoff", OPT_FRAGOFF, AGO_NEEDARG }, |
66 |
{ 'O', "tcpoff", OPT_TCPOFF, AGO_NEEDARG|AGO_EXCEPT0 }, |
66 |
{ 'O', "tcpoff", OPT_TCPOFF, AGO_NEEDARG }, |
67 |
{ 'r', "rel", OPT_REL, AGO_NOARG }, |
67 |
{ 'r', "rel", OPT_REL, AGO_NOARG }, |
68 |
{ 'd', "data", OPT_DATA, AGO_NEEDARG|AGO_EXCEPT0 }, |
68 |
{ 'd', "data", OPT_DATA, AGO_NEEDARG }, |
69 |
{ '0', "rawip", OPT_RAWIP, AGO_NOARG|AGO_EXCEPT0 }, |
69 |
{ '0', "rawip", OPT_RAWIP, AGO_NOARG }, |
70 |
{ '1', "icmp", OPT_ICMP, AGO_NOARG }, |
70 |
{ '1', "icmp", OPT_ICMP, AGO_NOARG }, |
71 |
{ '2', "udp", OPT_UDP, AGO_NOARG }, |
71 |
{ '2', "udp", OPT_UDP, AGO_NOARG }, |
72 |
{ '8', "scan", OPT_SCAN, AGO_NEEDARG }, |
72 |
{ '8', "scan", OPT_SCAN, AGO_NEEDARG }, |
Lines 77-110
Link Here
|
77 |
{ 'W', "winid", OPT_WINID, AGO_NOARG }, |
77 |
{ 'W', "winid", OPT_WINID, AGO_NOARG }, |
78 |
{ 'k', "keep", OPT_KEEP, AGO_NOARG }, |
78 |
{ 'k', "keep", OPT_KEEP, AGO_NOARG }, |
79 |
{ 'E', "file", OPT_FILE, AGO_NEEDARG|AGO_EXCEPT0 }, |
79 |
{ 'E', "file", OPT_FILE, AGO_NEEDARG|AGO_EXCEPT0 }, |
80 |
{ 'j', "dump", OPT_DUMP, AGO_NOARG|AGO_EXCEPT0 }, |
80 |
{ 'j', "dump", OPT_DUMP, AGO_NOARG }, |
81 |
{ 'J', "print", OPT_PRINT, AGO_NOARG|AGO_EXCEPT0 }, |
81 |
{ 'J', "print", OPT_PRINT, AGO_NOARG }, |
82 |
{ 'e', "sign", OPT_SIGN, AGO_NEEDARG|AGO_EXCEPT0 }, |
82 |
{ 'e', "sign", OPT_SIGN, AGO_NEEDARG|AGO_EXCEPT0 }, |
83 |
{ '9', "listen", OPT_LISTEN, AGO_NEEDARG|AGO_EXCEPT0 }, |
83 |
{ '9', "listen", OPT_LISTEN, AGO_NEEDARG|AGO_EXCEPT0 }, |
84 |
{ 'B', "safe", OPT_SAFE, AGO_NOARG|AGO_EXCEPT0 }, |
84 |
{ 'B', "safe", OPT_SAFE, AGO_NOARG|AGO_EXCEPT0 }, |
85 |
{ 'T', "traceroute", OPT_TRACEROUTE, AGO_NOARG }, |
85 |
{ 'T', "traceroute", OPT_TRACEROUTE, AGO_NOARG }, |
86 |
{ 'o', "tos", OPT_TOS, AGO_NEEDARG }, |
86 |
{ 'o', "tos", OPT_TOS, AGO_NEEDARG }, |
87 |
{ 'm', "mtu", OPT_MTU, AGO_NEEDARG|AGO_EXCEPT0 }, |
87 |
{ 'm', "mtu", OPT_MTU, AGO_NEEDARG }, |
88 |
{ 'Q', "seqnum", OPT_SEQNUM, AGO_NOARG|AGO_EXCEPT0 }, |
88 |
{ 'Q', "seqnum", OPT_SEQNUM, AGO_NOARG }, |
89 |
{ 'b', "badcksum", OPT_BADCKSUM, AGO_NOARG|AGO_EXCEPT0 }, |
89 |
{ 'b', "badcksum", OPT_BADCKSUM, AGO_NOARG }, |
90 |
{ 'M', "setseq", OPT_SETSEQ, AGO_NEEDARG|AGO_EXCEPT0 }, |
90 |
{ 'M', "setseq", OPT_SETSEQ, AGO_NEEDARG }, |
91 |
{ 'L', "setack", OPT_SETACK, AGO_NEEDARG|AGO_EXCEPT0 }, |
91 |
{ 'L', "setack", OPT_SETACK, AGO_NEEDARG }, |
92 |
{ 'C', "icmptype", OPT_ICMPTYPE, AGO_NEEDARG|AGO_EXCEPT0 }, |
92 |
{ 'C', "icmptype", OPT_ICMPTYPE, AGO_NEEDARG }, |
93 |
{ 'K', "icmpcode", OPT_ICMPCODE, AGO_NEEDARG|AGO_EXCEPT0 }, |
93 |
{ 'K', "icmpcode", OPT_ICMPCODE, AGO_NEEDARG }, |
94 |
{ 'u', "end", OPT_END, AGO_NOARG|AGO_EXCEPT0 }, |
94 |
{ 'u', "end", OPT_END, AGO_NOARG|AGO_EXCEPT0 }, |
95 |
{ 'G', "rroute", OPT_RROUTE, AGO_NOARG }, |
95 |
{ 'G', "rroute", OPT_RROUTE, AGO_NOARG }, |
96 |
{ 'H', "ipproto", OPT_IPPROTO, AGO_NEEDARG|AGO_EXCEPT0 }, |
96 |
{ 'H', "ipproto", OPT_IPPROTO, AGO_NEEDARG }, |
97 |
{ '\0', "icmp-help", OPT_ICMP_HELP, AGO_NOARG }, |
97 |
{ '\0', "icmp-help", OPT_ICMP_HELP, AGO_NOARG }, |
98 |
{ '\0', "icmp-ipver", OPT_ICMP_IPVER, AGO_NEEDARG|AGO_EXCEPT0 }, |
98 |
{ '\0', "icmp-ipver", OPT_ICMP_IPVER, AGO_NEEDARG }, |
99 |
{ '\0', "icmp-iphlen", OPT_ICMP_IPHLEN, AGO_NEEDARG|AGO_EXCEPT0 }, |
99 |
{ '\0', "icmp-iphlen", OPT_ICMP_IPHLEN, AGO_NEEDARG }, |
100 |
{ '\0', "icmp-iplen", OPT_ICMP_IPLEN, AGO_NEEDARG|AGO_EXCEPT0 }, |
100 |
{ '\0', "icmp-iplen", OPT_ICMP_IPLEN, AGO_NEEDARG }, |
101 |
{ '\0', "icmp-ipid", OPT_ICMP_IPID, AGO_NEEDARG|AGO_EXCEPT0 }, |
101 |
{ '\0', "icmp-ipid", OPT_ICMP_IPID, AGO_NEEDARG }, |
102 |
{ '\0', "icmp-ipproto", OPT_ICMP_IPPROTO, AGO_NEEDARG|AGO_EXCEPT0 }, |
102 |
{ '\0', "icmp-ipproto", OPT_ICMP_IPPROTO, AGO_NEEDARG }, |
103 |
{ '\0', "icmp-cksum", OPT_ICMP_CKSUM, AGO_NEEDARG|AGO_EXCEPT0 }, |
103 |
{ '\0', "icmp-cksum", OPT_ICMP_CKSUM, AGO_NEEDARG }, |
104 |
{ '\0', "icmp-ts", OPT_ICMP_TS, AGO_NOARG }, |
104 |
{ '\0', "icmp-ts", OPT_ICMP_TS, AGO_NOARG }, |
105 |
{ '\0', "icmp-addr", OPT_ICMP_ADDR, AGO_NOARG }, |
105 |
{ '\0', "icmp-addr", OPT_ICMP_ADDR, AGO_NOARG }, |
106 |
{ '\0', "tcpexitcode", OPT_TCPEXITCODE, AGO_NOARG }, |
106 |
{ '\0', "tcpexitcode", OPT_TCPEXITCODE, AGO_NOARG }, |
107 |
{ '\0', "fast", OPT_FAST, AGO_NOARG|AGO_EXCEPT0 }, |
107 |
{ '\0', "fast", OPT_FAST, AGO_NOARG }, |
108 |
{ '\0', "faster", OPT_FASTER, AGO_NOARG|AGO_EXCEPT0 }, |
108 |
{ '\0', "faster", OPT_FASTER, AGO_NOARG|AGO_EXCEPT0 }, |
109 |
{ '\0', "tr-keep-ttl", OPT_TR_KEEP_TTL, AGO_NOARG }, |
109 |
{ '\0', "tr-keep-ttl", OPT_TR_KEEP_TTL, AGO_NOARG }, |
110 |
{ '\0', "tcp-timestamp",OPT_TCP_TIMESTAMP, AGO_NOARG }, |
110 |
{ '\0', "tcp-timestamp",OPT_TCP_TIMESTAMP, AGO_NOARG }, |
Lines 112-126
Link Here
|
112 |
{ '\0', "tr-no-rtt", OPT_TR_NO_RTT, AGO_NOARG }, |
112 |
{ '\0', "tr-no-rtt", OPT_TR_NO_RTT, AGO_NOARG }, |
113 |
{ '\0', "rand-dest", OPT_RAND_DEST, AGO_NOARG }, |
113 |
{ '\0', "rand-dest", OPT_RAND_DEST, AGO_NOARG }, |
114 |
{ '\0', "rand-source", OPT_RAND_SOURCE, AGO_NOARG }, |
114 |
{ '\0', "rand-source", OPT_RAND_SOURCE, AGO_NOARG }, |
115 |
{ '\0', "lsrr", OPT_LSRR, AGO_NEEDARG|AGO_EXCEPT0 }, |
115 |
{ '\0', "lsrr", OPT_LSRR, AGO_NEEDARG }, |
116 |
{ '\0', "ssrr", OPT_SSRR, AGO_NEEDARG|AGO_EXCEPT0 }, |
116 |
{ '\0', "ssrr", OPT_SSRR, AGO_NEEDARG }, |
117 |
{ '\0', "route-help", OPT_ROUTE_HELP, AGO_NOARG }, |
117 |
{ '\0', "route-help", OPT_ROUTE_HELP, AGO_NOARG }, |
118 |
{ '\0', "apd-send", OPT_APD_SEND, AGO_NEEDARG }, |
118 |
{ '\0', "apd-send", OPT_APD_SEND, AGO_NEEDARG }, |
119 |
{ '\0', "icmp-ipsrc", OPT_ICMP_IPSRC, AGO_NEEDARG|AGO_EXCEPT0 }, |
119 |
{ '\0', "icmp-ipsrc", OPT_ICMP_IPSRC, AGO_NEEDARG }, |
120 |
{ '\0', "icmp-ipdst", OPT_ICMP_IPDST, AGO_NEEDARG|AGO_EXCEPT0 }, |
120 |
{ '\0', "icmp-ipdst", OPT_ICMP_IPDST, AGO_NEEDARG }, |
121 |
{ '\0', "icmp-gw", OPT_ICMP_GW, AGO_NEEDARG|AGO_EXCEPT0 }, |
121 |
{ '\0', "icmp-gw", OPT_ICMP_GW, AGO_NEEDARG }, |
122 |
{ '\0', "icmp-srcport", OPT_ICMP_SRCPORT, AGO_NEEDARG|AGO_EXCEPT0 }, |
122 |
{ '\0', "icmp-srcport", OPT_ICMP_SRCPORT, AGO_NEEDARG }, |
123 |
{ '\0', "icmp-dstport", OPT_ICMP_DSTPORT, AGO_NEEDARG|AGO_EXCEPT0 }, |
123 |
{ '\0', "icmp-dstport", OPT_ICMP_DSTPORT, AGO_NEEDARG }, |
124 |
{ '\0', "force-icmp", OPT_FORCE_ICMP, AGO_NOARG }, |
124 |
{ '\0', "force-icmp", OPT_FORCE_ICMP, AGO_NOARG }, |
125 |
{ '\0', "beep", OPT_BEEP, AGO_NOARG }, |
125 |
{ '\0', "beep", OPT_BEEP, AGO_NOARG }, |
126 |
{ '\0', "flood", OPT_FLOOD, AGO_NOARG }, |
126 |
{ '\0', "flood", OPT_FLOOD, AGO_NOARG }, |