ICMP Ping Program in C
This sample illustrates how an ICMP ping app can be written using the SOCK_RAW socket type and IPPROTO_ICMP protocol. By creating a raw socket, the underlying layer does not change the protocol header so that when we submit the ICMP header nothing is changed so that the receiving end will see an ICMP packet. Additionally, we use the record route IP option to get a round trip path to the endpoint. Note that the size of the IP option header that records the route is limited to nine IP addresses.
Read More