intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

ĐỀ TAI: Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP

Chia sẻ: Pham Huu Nhuong Nhuong | Ngày: | Loại File: PDF | Số trang:28

400
lượt xem
85
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

CHƯƠNG I: CƠ SỞ LÝ THUYẾT I. Giới thiệu TCP/IP Các lớp trong mô hình TCP/IP. Các bước đóng gói dữ liệu trong mô hình TCP/IP Một số giao thức cơ bản trong mô hình TCP/IP.Giao thức ICMP 1. Giới thiệu ICMP Cấu trúc Danh sách các thông điệp điều khiển của giao thức ICMP CHƯƠNG II: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH I. Phân tích yêu cầu II. Phân tích các chức năng. Phương thức hoạt động của ứng dụng:. Xây dựng chức năng Xây dựng các chức năng...

Chủ đề:
Lưu

Nội dung Text: ĐỀ TAI: Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP

  1. BỘ MÔN MẠNG VÀ TRUYỀN THÔNG ĐỀ TÀI Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP Võ Duy Dũng Lớp 07T4 – Nhóm 09B
  2. 1 Bộ môn Mạng và Truyền Thông NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN …………………………………………………………………………………… …. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. ………………………………………………………………………………………. Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  3. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 2 ………………………………………………………………………………………. …………………………………………………………………………………… MỤC LỤC CHƯƠNG I: CƠ SỞ LÝ THUYẾT.....................................................4 I. Giới thiệu TCP/IP...................................................................................4 1. Các lớp trong mô hình TCP/IP............................................................4 2. Các bước đóng gói dữ liệu trong mô hình TCP/IP..............................5 3. Một số giao thức cơ bản trong mô hình TCP/IP..................................5 II. Giao thức ICMP..................................................................................11 1. Giới thiệu ICMP................................................................................11 2. Cấu trúc.............................................................................................12 3. Danh sách các thông điệp điều khiển của giao thức ICMP................13 CHƯƠNG II: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH....16 I. Phân tích yêu cầu.................................................................................16 II. Phân tích các chức năng....................................................................16 1. Phương thức hoạt động của ứng dụng:..............................................16 2. Xây dựng chức năng:........................................................................16 III. Xây dựng các chức năng...................................................................17 CHƯƠNG III: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ.............19 I. Môi trường triển khai...........................................................................19 1. Hệ thống............................................................................................19 2. Phần mềm..........................................................................................19 II. Kết quả các chức năng của chương trình:.........................................19 1. Giao diện chính của chương trình:....................................................19 2. Chức năng quét địa chỉ của chương trình:.........................................20 Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  4. 3 Bộ môn Mạng và Truyền Thông Code chương trình:..................................................................................21 1. Lớp ICMP.cs: Xử lý gói tin ICMP....................................................21 2. Lớp Kiemtra.cs: Kiểm tra thông tin trả về của gói tin ICMP.............22 3. Form1.cs: Xử lý sự kiện trên Winform..............................................23 DANH MỤC HÌNH VẼ Hình 1.1. Mô hình TCP/IP ...................................................................4 Hình 1.2. Các bước đóng gói trong mô hình TCP/IP........................5 Hình 1.3. Các giao thức khác nhau TCP/IP.......................................6 Hình 1.4. ARP Header..........................................................................6 Hình 1.5. IP Header..............................................................................7 Hình 1.6. Vị trí của ICMP message.....................................................8 Hình 1.7. ICMP Header.......................................................................8 Hình 1.8. IGMP Header.......................................................................8 Hình 1.9. UDP Header..........................................................................9 Hình 1.10. Cách thiết lập kết nối giao thức......................................10 Hình 1.11. Truyền, nhận gói tin trong TCP .....................................11 Hình 2.1 Cấu trúc gói tin ICMP.........................................................13 Hình 3.1 Chương trình trước khi quét..............................................20 Hình 3.2 Quét dãy địa chỉ mà người dùng nhập vào........................20 Hình 3.3 Chức năng quét theo lớp.....................................................21 Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  5. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 4 CHƯƠNG I: CƠ SỞ LÝ THUYẾT I. Giới thiệu TCP/IP 1. Các lớp trong mô hình TCP/IP Hình 1.1. Mô hình TCP/IP Mô hình tham chiếu TCP/IP tương tự như kiến trúc OSI, sau đây là một số tính chất của các lớp trong mô hình tham chiếu TCP/IP: Lớp Application: quản lý các giao thức, như hỗ trợ việc trình bày, mã hóa và quản lý cuộc gọi. Lớp Application cũng hỗ trợ nhiều ứng dụng, như : FTP (File Transfer Protocol), HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), DNS (Domain Name System), TFTP (Trivial File Transfer Protocol) Lớp Transport: đảm nhiệm việc vận chuyển từ nguồn đến đích. Tầng Transport đảm nhiệm việc truyền dữ liệu thông qua hai nghi thức: TCP (Transmission Control Protocol) và UDP (User Datagram Protocol) Lớp Internet: đảm nhiệm việc lựa chọn đường đi tốt nhất cho các gói tin. Nghi thức được sử dụng chính ở tầng này là nghi thức IP (Internet Protocol) Lớp Network Interface: có tính chất tương tự như như hai lớp Data Link và Physical của kiến trúc OSI Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  6. 5 Bộ môn Mạng và Truyền Thông 2. Các bước đóng gói dữ liệu trong mô hình TCP/IP Hình 1.2. Các bước đóng gói trong mô hình TCP/IP 3. Một số giao thức cơ bản trong mô hình TCP/IP Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  7. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 6 Hình 1.3. Các giao thức khác nhau TCP/IP a. Giao thức ARP (Address Resolution Protocol) và giao thức RARP (Reverse Address Resolution Protocol) Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau nếu chúng biết địa chỉ MAC của nhau. Như vậy vấn đề đặt ra là phải thực hiện ánh xạ giữa địa chỉ IP (32 bit) và địa chỉ MAC (48 bit) của một trạm. Giao thức ARP đã được xây dựng để chuyển đổi từ địa chỉ IP sang địa chỉ MAC khi cần thiết.Khuôn dạng của một gói tin ARP được chỉ ra trong hình dưới đây: Hình 1.4. ARP Header Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  8. 7 Bộ môn Mạng và Truyền Thông Ngược lại, giao thức RARP được dùng để chuyển đổi từ địa chỉ MAC sang địa chỉ IP. Khuôn dạng của một gói tin RARP tương tự như khuôn dạng của một gói tin ARP đã được chỉ ra như trong hình trên. Chỉ khác là ở trường Operation nó sẽ có giá trị là 3 cho gói tin RARP request và giá trị là 4 cho gói tin RARP reply. Các giao thức ARP và RARP không phải là bộ phận của IP mà IP sẽ dùng đến chúng khi cần. b. Giao thức IP (Internet Protocol) Giao thức IP là một trong những giao thức quan trọng nhất của bộ giao thức TCP/IP. Mục đích của giao thức IP là cung cấp khả năng kết nối các mạng con thành liên mạng để truyền dữ liệu. IP là giao thức cung cấp dịch vụ phân phát datagram theo kiểu không liên kết và không tin cậy nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu, không đảm bảo rằng IP datagram sẽ tới đích và không duy trì bất kỳ thông tin nào về những datagram đã gửi đi. Khuôn dạng đơn vị dữ liệu dùng trong IP được mô tả như sau: Hình 1.5. IP Header c. Giao thức ICMP (Internet Control Message Protocol) - ICMP là một giao thức thông điệp, thường được xem như là một phần của lớp IP, được dùng để trao đổi các thông tin điều khiển dòng số liệu, thông báo lỗi và các thông tin trạng thái khác của bộ giao thức TCP/IP. - Khuôn dạng của một thông điệp ICMP và mối quan hệ của nó với một IP datagram được minh họa qua hình dưới đây. Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  9. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 8 Hình 1.6. Vị trí của ICMP message Có nhiều loại thông điệp ICMP, mỗi thông điệp ICMP có một khuôn dạng riêng của nó, mặc dù vậy chúng luôn bắt đầu với 3 trường giống nhau: Hình 1.7. ICMP Header • Type (8 bit) • Code (8 bit) • Checksum (16 bit) Có 15 giá trị khác nhau cho trường type, để định nghĩa từng thông điệp ICMP cụ thể. Một vài loại thông điệp ICMP sử dụng thêm những giá trị khác của trường code để định nghĩa cho nó. d. Giao thức IGMP (Internet Group Management Protocol) IGMP là một giao thức được sử dụng bởi host và router mà hỗ trợ kỹ thuật multicasting. Giống như ICMP, IGMP thường được xem như là một phần của lớp IP. Tuy nhiên, IGMP không giống như các giao thức khác, nó là một giao thức thông điệp có kích thước cố định và không có phần dữ liệu Hình vẽ sau đây chỉ ra khuôn dạng của một thông điệp IGMP phiên bản 2: Hình 1.8. IGMP Header Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  10. 9 Bộ môn Mạng và Truyền Thông Ý nghĩa các tham số: • Type (8 bit): định nghĩa loại thông điệp IGMP • Respond time (8 bit): giá trị thời gian tối đa mà một host phải trả lời một truy vấn • Checksum (16 bit): kiểm soát lỗi • Group address (32 bit): dùng để chỉ định một nhóm cụ thể hay được thiết lập giá trị 0.0.0.0 để chỉ tất cả các nhóm e. Giao thức UDP (User Datagram Protocol) UDP là giao thức không liên kết, cung cấp dịch vụ giao vận không tin cậy, sử dụng thay thế cho TCP trong tầng giao vận. Khác với TCP, UDP không có chức năng thiết lập và giải phóng liên kết, không có cơ chế báo nhận (ACK), không sắp xếp tuần tự các đơn vị dữ liệu (datagram) đến và có thể dẫn đến tình trạng mất hoặc trùng dữ liệu mà không hề có thông báo lỗi cho người gửi. Khuôn dạng của UDP datagram được mô tả như sau: Hình 1.9. UDP Header Ý nghĩa các tham số: • Số hiệu cổng nguồn (Source Port - 16 bit): số hiệu cổng nơi đã gửi datagram • Số hiệu cổng đích (Destination Port - 16 bit): số hiệu cổng nơi datagram được chuyển tới • Độ dài UDP (Length - 16 bit): độ dài tổng cộng kể cả phần header của gói UDP datagram • UDP Checksum (16 bit): dùng để kiểm soát lỗi, nếu phát hiện lỗi thì UDP datagram sẽ bị loại bỏ mà không có một thông báo nào trả lại cho trạm gửi Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  11. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 10 UDP có chế độ gán và quản lý các số hiệu cổng (port number) để định danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do có ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn so với TCP. Nó thường dùng cho các ứng dụng không đòi hỏi có độ tin cậy cao trong giao vận. f. Giao thức TCP (Transmission Control Protocol) TCP cung cấp kết nối tin cậy giữa hai máy tính, kết nối được thiết lập trước khi dữ liệu bắt đầu truyền. TCP còn gọi là nghi thức hướng kết nối, với nghi thức TCP thì quá trình hoạt động trải qua ba bước sau: • Thiết lập kết nối (Connection establishment) • Truyền dữ liệu (Data transfer) • Kết thúc kết nối (Connection termination) TCP phân chia các thông điệp thành các segment, sau đó nó ráp các segment này lại tại bên nhận và nó có thể truyền lại những gói dữ liệu nào đã bị mất. Với TCP thì dữ liệu đến đích là đúng thứ tự, TCP cung cấp Vitual Circuit giữa các ứng dụng bên gửi và bên nhận. Giao thức TCP thiết lập một kết nối bằng phương pháp “Bắt tay 3 lần” (three- way handshake). Hình 1.10. Cách thiết lập kết nối giao thức Hình vẽ dưới đây là một ví dụ về cách thức truyền, nhận gói tin bằng giao thức TCP. Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  12. 11 Bộ môn Mạng và Truyền Thông Hình 1.11. Truyền, nhận gói tin trong TCP Giao thức TCP là giao thức có độ tin cậy cao, nhờ vào phương pháp truyền gói tin, như cơ chế điều khiển luồng (flow control), các gói tin ACK,…. II. Giao thức ICMP Internet Control Message Protocol (ICMP) là một trong những giao thức cốt lõi của giao thức Internet Suite . Đó là chủ yếu được sử dụng bởi các hệ điều hành của máy tính nối mạng để gửi thông báo lỗi cho thấy, ví dụ, một dịch vụ yêu cầu không có hoặc có một máy chủ hoặc router không thể đạt được. ICMP cũng có thể được sử dụng để chuyển tiếp tin nhắn truy vấn. ICMP khác với giao thức vận chuyển như TCP và UDP ở chỗ nó không thường được sử dụng để trao đổi dữ liệu giữa các hệ thống, cũng không phải là thường xuyên làm việc của người sử dụng các ứng dụng mạng lưới cấp (với ngoại lệ của một số công cụ chẩn đoán như ping và traceroute ) . ICMP cho giao thức Internet phiên bản 4 (IPv4) cũng được gọi là ICMPv4. IPv6 có một giao thức tương tự, ICMPv6 . 1. Giới thiệu ICMP Internet Control Message Protocol là một phần của giao thức Internet Suite được định nghĩa trong RFC 792 . thông điệp ICMP thường được tạo ra để đáp ứng Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  13. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 12 với các lỗi trong IP datagrams (theo quy định tại RFC 1122 ), hoặc cho hay định tuyến nhằm mục đích chẩn đoán. ICMP lỗi luôn luôn được báo cáo với nguồn địa chỉ IP gốc của gói dữ liệu có nguồn gốc. Một ví dụ ICMP thông báo lỗi là các Thời gian để nhắn Live vượt quá. Tất cả các máy (chẳng hạn như một trung gian router ) để chuyển tiếp một gói dữ liệu IP có để lượng giảm trong thời gian sống (TTL) lĩnh vực của tiêu đề IP một. Nếu TTL đạt đến 0, một ICMP Thời gian để sống vượt quá cảnh báo được gửi đến các nguồn của gói dữ liệu này. Mỗi thông điệp ICMP được đóng gói trực tiếp trong một gói dữ liệu IP duy nhất, và do đó, giống như UDP , ICMP là không đáng tin cậy . Mặc dù thông điệp ICMP được chứa trong tiêu chuẩn datagrams IP, các thông điệp ICMP thường được xử lý như một trường hợp đặc biệt, phân biệt với chế biến IP bình thường, chứ không phải xử lý như là một giao thức bình thường phụ của IP. Trong nhiều trường hợp, nó là cần thiết để kiểm tra các nội dung của thông điệp ICMP và cung cấp những thông báo lỗi thích hợp cho các ứng dụng tạo ra các gói tin IP ban đầu, một trong đó nhắc việc gửi thông điệp ICMP. Nhiều tiện ích mạng thông dụng dựa trên thông điệp ICMP. Các lệnh traceroute được thực hiện bằng cách truyền UDP datagrams với gói tin được đặt thêm thông số IP TTL, và tìm kiếm ICMP có thời gian sống lớn hơn TTL(ở trên) và "Destination unreachable" trong quá trình truyền. Các tiện ích ping được thực hiện bằng cách sử dụng ICMP "Echo Request" và "Echo Reply". 2. Cấu trúc Các gói tin bắt đầu sau IP header (20 bytes). Tất cả các gói ICMP sẽ có một header có kích thước 8 byte và phần biến dữ liệu. 4 byte đầu tiên của header này sẽ được nhất quán. Các byte đầu tiên dành cho trường Type. Các byte thứ hai là cho trường Code. Các byte thứ ba và thứ tư là trường Checksum. Nội dung của các byte từ byte thứ 4 của header sẽ khác nhau dựa trên trường Type và Code. Thông báo lỗi của ICMP có chứa một phần dữ liệu bao gồm toàn bộ các IP header cộng với các byte đầu tiên của gói tin mà tạo ra các thông báo lỗi khác nhau. Các gói dữ liệu ICMP sau đó được gói gọn trong một gói IP mới. Type - ICMP Code theo quy định dưới đây. • Code - Kiểu loại hình nhất định. • Checksum - kiểm tra lỗi dữ liệu. Tính từ ICMP header + dữ liệu, với giá trị • 0 cho lĩnh vực này. Thuật toán là giống như tổng kiểm tra tiêu đề cho IPv4. Bit 0-7 8-15 16-23 24-31 Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  14. 13 Bộ môn Mạng và Truyền Thông 0 Loại Mã số Checksum 32 Message Hình 2.1 Cấu trúc gói tin ICMP 3. Danh sách các thông điệp điều khiển của giao thức ICMP Type Code Description 0 - Echo Reply 0 Có phản hồi lại (sử dụng để ping) 1 and 2 Dành riêng 0 Điểm đích của mạng không thể truy cập 1 Host đích không thể truy cập 2 Giao thức đích không thể truy cập 3 Cổng đích không thể truy cập 4 Yêu cầu sự phân mảnh , và đặt cở DF 5 Định tuyến nguồn bị lỗi 6 Không biết mạng đich 3 - Destination Unreachable 7 Không biết máy đích 8 Host nguồn bị cô lập 9 Mạng hành chính bị cấm 10 Host hành chính bị cấm 11 Mạng không thể truy cập cho TOS 12 Máy không thể truy cập cho TOS 13 Truyền thông bị cấm 4 - Source Quench 0 Nguồn bị tắt (điều khiển tắc nghẽn) Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  15. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 14 0 Chuyển Datagram cho mạng 1 Chuyển Datagram cho Host 5 - Redirect Message 2 Chuyển Datagram cho TOS và mạng 3 Chuyển Datagram cho TOS và host 6 Thay thế địa chỉ host 7 Dành riêng 8 - Echo Request 0 Lặp lại yêu cầu 9 – Router Advertisement 0 Router quảng bá 10 - Router Solicitation 0 Router khám phá/lựa chọn 0 TTL hết trong quá trình truyền 11 - Time Exceeded 1 Xác nhận phân mảnh hết hạn 0 Con trỏ chỉ ra lỗi 12 - Parameter Problem: 1 Thiếu lựa chọn cần thiết Bad IP header 2 Tình trạng chiều dài 13 - Timestamp 0 Dấu thời gian 14 - Timestamp Reply 0 Trả lời dấu thời gian 15 - Information Request 0 Yêu cầu thông tin 16 - Information Reply 0 Phản hồi thông tin 17 - Address Mask Request 0 Yêu cầu địa chỉ mặt nạ 18 - Address Mask Reply 0 Trả lời địa chỉ mặt nạ 19 Dành riêng cho bảo mật 20 tới 29 Dành cho thử nghiệm độ bền 30 - Traceroute 0 Yêu cầu thông tin 31 Chuyển đổi Datagram bị lỗi Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  16. 15 Bộ môn Mạng và Truyền Thông 32 Chuyển host di động 33 Where-Are-You (ban đầu cho IPv6) 34 Here-I-Am (ban đầu cho IPv6) 35 Yêu cầu sự đăng kí di động 36 Trả lời sự đăng kí di động 37 Yêu cầu tên miền 38 Trả lời tên miền Thuật toán SKIP Discovery Protocol, 39 Simple Key – Quản lý giao thức Internet 40 Photuris, bảo mật thất bại Các giao thức ICMP cho thử nghiệm di 41 động như Seamoby [RFC4065] 42 tới 255 Dành riêng Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  17. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 16 CHƯƠNG II: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH I. Phân tích yêu cầu Ứng dụng phải đảm bảo thực hiện được các yêu cầu sau: • Gửi gói tin ICMP đến tất cả các máy đến dải địa chỉ trong mạng LAN. • Bắt các gói tin IP được gửi về và tách ra gói tin ICMP từ gói tin IP để xử lý. • Có thể quét theo các lớp địa chỉ Private II. Phân tích các chức năng 1. Phương thức hoạt động của ứng dụng: Ứng dụng hoạt động bằng cách sẽ lần lượt gửi từng gói tin ICMP tới tất cả các máy trong mạng LAN cần quét. Dãy địa chỉ IP để gửi các gói tin ICMP sẽ do người dùng nhập vào hay sẽ chọn lựa việc gửi theo lớp (lớp A, lớp B, lớp C ..). Trong khi gửi gói tin thì ứng dụng sẽ bắt gói tin phản hồi từ một địa chỉ IP nào đó để tiến hành xử lý. Và dựa vào thông tin phản hồi đó mà biết được địa chỉ IP đó có tồn tại trong mạng hay không. Để gửi được gói tin tới tất cả các địa chi thì ta dùng 4 vòng lặp for lồng nhau tương ứng với 4 octet của địa chỉ IPv4. for (byte i = ipf1; i
  18. 17 Bộ môn Mạng và Truyền Thông III. Xây dựng các chức năng a. Xây dựng chức năng gửi gói tin: Để gửi một gói tin trong Visual C# thì ta phải sử dụng một Raw Socket. Muốn tạo Raw Socket khi tạo ra Socket ta sử dụng SocketType.Raw, giao thức ICMP. Tạo Raw Socket như sau: Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); Gửi gói dữ liệu Raw: ICMP là giao thức không hướng kết nối. Sử dụng phương thức SendTo() của lớp Socket để gửi. Cổng trong giao thức ICMP không quan trọng. IPEndPoint iep = new(IPEndPoint (IPAddress.Parse (“192.168.1.2”), 0); sock.SendTo(packet, iep); b. Xây dựng chức năng nhận gói tin và xử lý: Để nhận gói tin từ các máy khác gửi vể ta dùng phương thức ReceiveFrom của lớp Socket. Dữ liệu nhận về là một gói tin IP, vì vậy ta phải tách ra để lấy gói tin ICMP. Raw Socket không tự động định dạng ICMP cho chúng ta. Ta định nghĩa lớp ICMP như sau: class ICMP { public byte Type; public byte Code; public UInt16 Checksum; public int Messagesize; public byte[] Message = new byte[1024]; public ICMP() { } } Ta tạo ra một gói tin ICMP với Type = 8, Code = 0 để tiến hành gửi. ICMP packet = new ICMP(); packet.Type = 0x08; packet.Code = 0x00; packet.Checksum = 0; Để lấy lại gói tin ICMP từ gói IP nhận được ta có phương thức: Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  19. Ứng dụng giao thức ICMP để xây dựng chương trình Scan IP 18 public ICMP(byte[] data, int size) { Type = data[20]; Code = data[21]; Checksum = BitConverter.ToUInt16(data, 22); Messagesize = size - 24; Buffer.BlockCopy(data, 24, Message, 0, Messagesize); } Vì gói tin ICMP bắt đầu từ byte thứ 20 trong gói tin IP nên ta sẽ lấy dữ liệu bắt đầu từ vị trí byte thứ 20. •Byte thứ 20 chứa thông tin về Type •Byte thứ 21 chứa thông tin về Code •Byte thứ 22 và 23 chứa thông tin về Checksum •Dữ liệu bắt đầu từ byte thứ 24 Sau khi nhận gói tin ta tiến hành phân tích gói tin ICMP theo các thông điệp điểu khiển: •Type •Code •Indentifier •Sequence Tùy theo các thông điệp đó mà ta biết được gói tin có được phàn hồi lại hay không. c. Xây dựng chức năng quét địa chỉ IP: Chức năng quét địa chỉ IP là mở rộng của việc gửi, nhận và phân tích gói tin nhận được từ nhiều máy trong mạng LAN. Ở đây ta sẽ quét một dãy các địa chỉ IP. Để thực thiện công việc này ta tiến hành một vòng lặp trên 4 octet của địa chỉ IP để lần lượt gửi các gói tin ICMP đến từng máy và tiến hành phân tích nhận được tương ứng của mỗi máy. Nếu có sự phản hồi của máy nào thì ta biết máy đó đang tồn tại trong mạng và hiển thị cho người sử dụng biết. Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
  20. 19 Bộ môn Mạng và Truyền Thông CHƯƠNG III: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ I. Môi trường triển khai 1. Hệ thống • Bộ xử lý Intel Pentium III hoặc các bộ xử lý mạnh hơn • 128 MB Ram hoặc cao hơn • Màn hình có độ phân giải (800 x 600) hoặc cao hơn • Bàn phím, chuột • Có kết nối mạng (hoặc Internet, hoặc LAN) 2. Phần mềm • Hệ điều hành Windows 2000/XP/7 • Visual Studio 2010 (Visual C#) II. Kết quả các chức năng của chương trình: 1. Giao diện chính của chương trình: Võ Duy Dũng – Lớp 07T4 – Nhóm 09B
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2