Man pages sections > man8 > t50

T50 - network packet injector

T50(8) T50 man page T50(8)


T50 - network packet injector


t50 [options] [--] host[/CIDR]


Experimental mixed packet injector tool.
This is NOT a DoS tool, but a tool to inject packets using various protocols.


The host address is the target of T50. It can be informed in one of two formats: IP address or URI name. This address can be informed as a range of IPs (by omitting one or mode octects) or using a CIDR separating the IP (full or partial) or URI with "/##", for instance: "192.168/16" or "". When using a partial IP address T50 will calculate CIDR automatically (8, 16 or 24 bits, if the first, second or third octect [from right to left] are omitted, respectively).
Notice that, sometimes, the "host[/CIDR]" argument is misinterpreted as an option. When this happens, you can use the pseudo option '--' before the host address. Also, to avoid this error you can provide the host address as the first argument.
Notice, also, that ONLY IPv4 addresses are allowed. T50 don't provide IPv6 support yet.
--threshold NUM
Number of packets to inject (default 1000).
Keep injecting packets until user terminates the process (^C). Cannot be used with --threshold.
-B, --bogus-csum
Use a bogus "random " checksum instead of calculating the actual packet checksum.
Inject packets faster (creates a child process).
When used with T50 "protocol", it will shuffle the available protocols. Otherwise they will be sent in the same order as listed with --list-protocols option. This option will not work with any other "protocol".
-s, --saddr ADDR
IP header source address (default RANDOM).
-p, --protocol protoname
Select an specific protocol to use (default: TCP. Use --list-protocols to see all protocols available). Use T50 if you want to inject all available protocols. The "protocolname" is case insensitive.
-h, --help
Display all available options and their defaults.
-v, --version
Display t50 version.
-l, --list-protocols
Lists all available protocols T50 can provide.


See all available protocols:
# t50 -l
T50 Experimental Mixed Packet Injector Tool 5.6.15
Originally created by Nelson Brito <>
Previously maintained by Fernando Mercês <>
Maintained by Frederico Lamberti Pissarra <>
[INFO] List of supported protocols (--protocol): 1 - ICMP (Internet Control Message Protocol) 2 - IGMPv1 (Internet Group Message Protocol v1) 3 - IGMPv3 (Internet Group Message Protocol v3) 4 - TCP (Transmission Control Protocol) 5 - EGP (Exterior Gateway Protocol) 6 - UDP (User Datagram Protocol) 7 - RIPv1 (Routing Internet Protocol v1) 8 - RIPv2 (Routing Internet Protocol v2) 9 - DCCP (Datagram Congestion Control Protocol) 10 - RSVP (Resource Reservation Protocol) 11 - IPSEC (Internet Security Protocl (AH/ESP)) 12 - EIGRP (Enhanced Interior Gateway Routing Protocol) 13 - OSPF (Open Shortest Path First)
Send 500 packets to a single target:
# t50 --threshold 500
Flooding targets from to (notice the partial IP) with TCP packets:
# t50 192.168.0 --flood
Flooding targets from to with all protocols T50 can provide in a random order using "Turbo" mode.
# t50 192.168 --flood -p t50 --shuffle --turbo


Root privilege is mandatory to run t50.
There are lots of options. Please, use -h or --help to see them and their default values.


As noted before, the "host[/CIDR]" argument sometimes is misinterpreted as an option. This bug was introduced when the argument parser was changed to support flexible host "names". Someday I'll correct this (Frederico).


Nelson Brito


Fernando Mercês
Frederico Lamberti Pissarra


The latest release of the source code can be downloaded at: T50 GitHub Repository Copyright © 2014-2017 T50 developers. Licensed GPLv3+: GNU GPL version 3 or later <>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
2017-06-27 5.6