libpcap comment ca marche ?

  • Créateur du sujet Créateur du sujet plumber
  • Date de début Date de début
P

plumber

Invité
voila je voudrais juste faire un petit program

qui renvoit comme un netstat -w1
juste
input ouput
0 5263
0 0
4565 5263
0 5212
 
un début réponse de moi pour moi parce qu'il ya personne

#include <stdio.h>
#include <stdlib.h>
#include <pcap.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc, char **argv) {
/*
plumber test libcap 1 complie gcc this.c -lcap

*/
char *device;
char *net;
char *mask;
int lookupnet;
char errbuf[PCAP_ERRBUF_SIZE];
bpf_u_int32 netp;
bpf_u_int32 maskp;
struct in_addr addr;

if(argv[1] !=NULL) {
fprintf(stdout,"\n\nUsage: %s interface\n\n",argv[0]);
return 0;
}

device = argv[1];

printf("device: %s\n",device);

lookupnet = pcap_lookupnet(device,&netp,&maskp,errbuf);

if(lookupnet == -1) {
printf("%s\n",errbuf);
exit(1);
}

addr.s_addr = netp;
net = inet_ntoa(addr);

if(net == NULL){
perror("inet_ntoa");
exit(1);
}
printf("inet: %s\n",net);

addr.s_addr = maskp;
mask = inet_ntoa(addr);

if(mask == NULL){
perror("inet_ntoa");
exit(1);
}
printf("netmask: %s\n",mask);

return 0;
}