Skip to content

Instantly share code, notes, and snippets.

@iolloyd
Created May 1, 2016 22:15
Show Gist options
  • Save iolloyd/df7ab9ad3a2b4d522fba6bb4dfe56b82 to your computer and use it in GitHub Desktop.
Save iolloyd/df7ab9ad3a2b4d522fba6bb4dfe56b82 to your computer and use it in GitHub Desktop.
sniff packets in c
int main()
{
int dsize, saddr_size;
struct sockaddr saddr;
struct in_addr in;
unsigned char *buf = (unsigned char *)malloc(65536);
if((raw_socket = socket(AF_INET , SOCK_RAW , IPPROTO_TCP) < 0)
{
printf("Socket Error\n");
return 1;
}
while(1)
{
saddr_size = sizeof saddr;
dsize = recvfrom(sock_raw , buffer , 65536 , 0 , &saddr , &saddr_size);
if(data_size < 0)
{
printf("Recvfrom error: failed to get packets\n");
return 1;
}
// If we get here, process(buffer, dsize) ...
}
close(raw_socket);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment