Sending A Packet Via The Raw Socket (Cont.)
Even more include files (for 'inet_aton'):
#include <netinet/in.h>
#include <arpa/inet.h>
And code:
struct sockaddr_in addr;
// prepare the address we're sending the packet to.
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
inet_aton("127.0.0.1", &addr.sin_addr);
// finally, send the packet.
rc = sendto(s,
&icpmhdr, sizeof(struct icmphdr),
0 /* flags */,
(struct sockaddr*)&addr, sizeof(addr));
if (rc == -1) {
perror("sendto:");
exit(1);
}
Originally written by
guy keren