Although is pretty easy to write a perl/python script to send UDP data, I wanted to be able to send a UDP message from the command line to test some code quickly. After 15 seconds of googling I found the awesome command “sendip”. After a minute of reading the man page I got what I needed:
sendip -p ipv4 -is 192.168.1.81 -p udp -us 5070 -ud 5060 -d "Hello" -v 192.168.1.81 |
This should send a “Hello” message over udp to port 5060 using an ipv4 address.
Here the result:
Added 26 options Initializing module ipv4 Initializing module udp Finalizing module udp Finalizing module ipv4 Final packet data: 45 00 00 21 E..! 34 E0 00 00 4... FF 11 02 F9 .... C0 A8 01 51 ...Q C0 A8 01 51 ...Q 13 CE 13 C4 .... 00 0D 30 7D ..0} 48 65 6C 6C Hell 6F o Sent 33 bytes to 192.168.1.81 Freeing module ipv4 Freeing module udp |
It is pretty awesome that you can build about any protocol packet for quick testing using just bash …
This does not work for windows.
Pingback: Need to fake some incoming packets? | solutions not code
I tried sending sendip from my machine in terminal, but I am unable get any response. Do I need to add any extra tool for it
do I need to install sendIp software to use this unix command to set packets?
you can also use the ubiquitous net cat
echo -n “foo” | nc -4u -w1
http://mikeberggren.com/post/53883822425/ncudp
Thanks for this topic. found exactly what I want to troubleshot rsyslog remote udp message logging
If you want an easy to way to send/receive TCP/UDP packets, you can just download this: http://packetsender.com/
Is “SendIP” a third part tool or comes as port of windows?
how to send to a ports range ?
It is definitely another option and looks easier. However, it is probably not as powerful.
* Can you specify IPv6 somehow? perhaps implicit when using IPv6 address formatting?
* How do you specify the source IP address and port?
Another difference is that if you’re using dash (Ubuntu now ships with it I believe), zsh, korn shell or others, that might not work.
Is it easier to use bash’s built in TCP/UDP handling capabilities?
echo “hello” > /dev/tcp/192.168.2.101/58549
echo “hello” > /dev/udp/192.168.2.101/58549
Yes you can do that.
Don’t do evil stuff!
can u send that to a public ip like google server or something like that?
Hey Vlad!
That’s a creative use of socat.
I had only used it in the past to quickly send freeswitch ESL commands over TCP from bash, I should’ve thought udp support was there as well.
Thanks for sharing!
Hi Moy,
I like socat:
e.g.:
echo “HELLO” | socat – UDP-DATAGRAM:192.168.0.255:5000,broadcast
Checkout some examples:
http://thekissinglink.blogspot.com/2010/01/socat-examples.html
Hi José,
Never used sipsak, whenever I need full SIP testing I use “sipp”. I see sipsak handy though for quick testing without bothering to write an XML scenario for sipp. Thanks for sharing!
Have you tried “sipsak” for SIP testing?
This is really indeed awesome!
I was looking at some ruby / perl code for creating such a tool…
I still think I’m going to play with it – but this is just so awesome..
Linux just keeps surprising me..
Thanks a lot for sharing!
Gracias por compartir, acabo de publicar tu enlace en Reddit: http://redd.it/qyh7d