資源簡介
通過實例程序對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
- 上一篇:編譯原理課設——最終課設
- 下一篇:4*4鍵盤 VHDL 全部代碼
評論
共有 條評論