Constructing a Ping packet with libnet

In this recipe, we will construct an ICMP (Ping) packet and inject it into the network. The device that receives the packet should respond back with an ICMP response packet. However, libnet is a packet construction and an injection library, not a packet capture library, so we will use Wireshark (http://www.wireshark.org) to see the packets that we send out and the packet that is returned. In Chapter 4, Using Libpcap, we will see how to capture packets.

In order to create an ICMP packet and inject it into the network, we will need to create an ICMP header and an IP header. The IP header and the corresponding libnet_build_ipv4() function were covered in the Introduction section of this chapter, so we will not ...

Get iOS and OS X Network Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.