• 大小: 45KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2022-10-04
  • 语言: 其他
  • 标签: TCP/IP  

资源简介

通过实例程序对IP、TCP、UDP、ICMP、IPv6等报头程序的编制、运行和分析。

资源截图

代码片段和文件信息

/**********************************************************************
 *  ARPテ〖ブル构糠プログラム (arpupdate.c)
 *        Ver 2.1 2007钳 3奉 6泣
 *                                扩侯ˇ螟侯 录怀给瘦 (Yukio Murayama)
 *
 *  蝗脱钓满今
 *    塑プログラムは、TCP/IPプロトコルの池浆、第び、ネットワ〖クプロ
 *    グラミングの祷墙を羹惧させるためにのみ、そのまま、または、饯赖
 *    して蝗脱することができます。塑プログラムについて、恕围で敦贿さ
 *    れているか、または、给进紊炉に瓤するような猖陇、第び、蝗脱を敦
 *    贿します。塑プログラムは痰瘦沮です。扩侯荚は塑プログラムによっ
 *    て券栏したいかなる禄巢についても勒扦を艰ることはできません。
 **********************************************************************/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#ifndef __linux
#include 
#include 
#include 
#include 
#endif
#include 

#define CHKADDRESS(_saddr_) \
        {\
          unsigned char *p = (unsigned char *) &(_saddr_);\
          if ((p[0] == 127)\
           || (p[0] == 10)\
           || (p[0] == 172 && 16 <= p[1] && p[1] <= 31)\
           || (p[0] == 192 && p[1] == 168))\
            ;\
          else {\
            fprintf(stderr “IP address error.\n“);\
            exit(EXIT_FAILURE);\
          }\
        }

#define MAXSIZE 8192
#define CMAX    256

enum {CMD_NAME IFNAME DST_IP MAC_ADDR OPTION};
enum {NORMAL REPLY REQUEST};

#ifndef __linux
int open_bpf(char *ifname int *bufsize);
#endif

void make_ethernet(struct ether_header *eth unsigned char *ether_dhost
                   unsigned char *ether_shost u_int16_t ether_type);
void make_arp(struct ether_arp *arp int op unsigned char *arp_sha
              unsigned char *arp_spa unsigned char *arp_tha
              unsigned char *arp_tpa);
void print_ethernet(struct ether_header *eth);
void print_arp(struct ether_arp *arp);
char *mac_ntoa(unsigned char d[]);
void help(char *cmd);

int main(int argc char *argv[])
{
  int s;               /* ソケットディスクリプタ          */
  u_char mac_addr[6];  /* MACアドレス呈羌脱               */
  int tmp[6];          /* MACアドレス呈羌脱(办箕网脱)     */
  int flag;            /* フラグ (REPLY、REQUEST、NORMAL) */
  int i;               /* ル〖プ恃眶                      */
  u_int32_t dst_ip;    /* タ〖ゲットIPアドレス            */
  char ifname[CMAX];   /* インタフェ〖ス叹                */
#ifndef __linux
  struct bpf_hdr *bp;  /* BPFヘッダ菇陇挛                 */
  int bpf_len;         /* BPFでの减慨デ〖タの墓さ         */
  int bufsize;         /* BPF柒婶のバッファサイズ         */
#else
  struct sockaddr sa;  /* ソケットアドレス菇陇挛          */
#endif

  flag = NORMAL;
  if (argc == 5) {
    if (strcmp(argv[OPTION] “reply“) == 0) 
      flag = REPLY;
    else if (strcmp(argv[OPTION] “request“) == 0)
      flag = REQUEST;
    else {
      help(argv[CMD_NAME]);
      exit(EXIT_FAILURE);
    }
  } else if (argc != 4) {
    help(argv[CMD_NAME]);
    exit(EXIT_FAILURE);
  }

  snprintf(ifname CMAX “%s“ argv[IFNAME]);
  dst_ip = inet_addr(argv[DST_IP]);

  if (sscanf(argv[MAC_ADDR] “%x:%x:%x:%x:%x:%x“ &tmp[0] &tmp[1]

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14930  2010-05-11 13:11  source\arpupdate.c

     文件      27937  2010-05-11 13:10  source\ipdump.c

     文件       6711  2010-05-11 13:08  source\redirect.c

     文件       7087  2010-05-11 13:10  source\scanhost.c

     文件       3556  2010-05-11 13:10  source\scanport_tcp.c

     文件       5779  2010-05-11 13:11  source\scanport_udp.c

     文件       8865  2010-05-11 13:08  source\scanroute.c

     文件       5207  2010-05-11 13:10  source\tcpc.c

     文件       7420  2010-05-11 13:09  source\tcpjack.c

     文件       7293  2010-05-11 13:09  source\tcprst.c

     文件       7309  2010-05-11 13:10  source\tcps.c

     文件       7267  2010-05-11 13:09  source\tcpsyn.c

     文件       5551  2010-05-11 13:09  source\tcpv6c.c

     文件       8942  2010-05-11 13:09  source\tcpv6s.c

     文件       4009  2010-05-11 13:10  source\udpc.c

     文件       6170  2010-05-11 13:10  source\udps.c

     目录          0  2010-05-11 13:20  source

----------- ---------  ---------- -----  ----

               134033                    17


评论

共有 条评论