Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #include <arpa/inet.h> /* Standard for socketprogramming */
  2. #include <netinet/ip.h> /* For the ip header */
  3. #include <netinet/udp.h>
  4. #include <sys/types.h> /* Some macros */
  5. #include <sys/socket.h> /* Also standard for socketprogramming */
  6. #include <string.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9.  
  10. struct packet {
  11. struct iphdr ip;
  12. struct udphdr udp;
  13. char data[BUFSIZ];
  14. };
  15.  
  16. #define SRCADDR "192.168.1.2"
  17. #define DESTADDR "192.168.1.1"
  18.  
  19. #define SRCPORT 1337
  20. #define DESTPORT 80
  21.  
  22. int main()
  23. {
  24. struct packet pk;
  25. memset(&pk,0,sizeof(pk));
  26.  
  27. strcat(pk.data, "Hello, World");
  28.  
  29. /* Filling in IP Header */
  30. pk.ip.ihl = 5;
  31. pk.ip.version = 4;
  32. pk.ip.tos = 0;
  33. pk.ip.tot_len = htons(sizeof(struct packet));
  34. pk.ip.id = htons(300);
  35. pk.ip.frag_off = 0x000;
  36. pk.ip.ttl = 64;
  37. pk.ip.protocol = IPPROTO_UDP;
  38. pk.ip.check = 0;
  39. pk.ip.saddr = inet_addr(SRCADDR);
  40. pk.ip.daddr = inet_addr(DESTADDR);
  41.  
  42. /* Filling in UDP Header */
  43. pk.udp.source = htons(SRCPORT);
  44. pk.udp.dest = htons(DESTPORT);
  45. pk.udp.len = htons(sizeof(pk)-sizeof(pk.ip));
  46. pk.udp.check = 0;
  47.  
  48. /* Doing the socket stuff */
  49. int sock;
  50. sock = socket(AF_INET,SOCK_RAW,IPPROTO_RAW);
  51.  
  52. struct sockaddr_in daddr;
  53.  
  54. daddr.sin_family = AF_INET;
  55. daddr.sin_addr.s_addr = inet_addr(DESTADDR);
  56. daddr.sin_port = htons(DESTPORT);
  57. memset(&daddr.sin_zero, 0, sizeof(daddr.sin_zero));
  58.  
  59. while(1) {
  60. sendto( sock, (char *) &pk, sizeof(pk), 0, (struct sockaddr *) &daddr, (socklen_t) sizeof(daddr));
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement