PDA

View Full Version : Lập trình mạng với Visual C++ ????



lac
14-12-2004, 23:15
Hiện nay em có 1 project nhỏ (ko bít có nhỏ ko nữa :) ) thế này :
Network của công ty em khá lớn, khoảng 400 máy kết nối. Em cần viết 1 phần mềm nhỏ cho phép hiện thông báo khi có 1 máy lạ nối dây vào mạng. Phân biệt máy lạ bằng MAC address , tức là nếu MAC address của máy mới plug vào ko nằm trong danh sách 400 MAC của công ty thì nó sẽ thông báo cho máy của admin biết.

Anh chị nào rành về lập trình mạng (socket programming thì phải ) thì giúp em với.Thanks

tinman
15-12-2004, 06:04
1) Có thể lên Net kiếm thử, có thể những tool viết sẳn cho việc này giống như dạng sniffer...

2) Nếu như không có mà cần phải viết thì nếu như là mình thì mình sẻ thực hiện như sau:

1) Download Package WinPCap, nếu dùng Window hay pcap nếu dùng Linux.

2) Dùng WinPCap, bạn có thể capture những network packet đi broadcast trên mạng LAN của bạn. Có thể download windump, tcpdump hay Ethereal về coi thử người ta capture packet như thế nào. 3) bạn có thể chứa 400 Mac address của công ty vào 1 file, khi khởi động chương trình thì load vào array, hay binary tree (để search cho nhanh).

4) Với WinPCap, bạn có thể capture những live packets trên mạng LAN. Tham khảo phần API của nó, cách sử dụng rất đơn giản và dể dàng. Thậm chí bạn có thê download những opensource của Windump sử dụng Winpcap về để nghiên cứu cách họ dùng WinPcap và set những filter... Sau khi dùng Winpcap capture những packets trên mạng LAN này bạn có thể decode để so sánh vói danh sách bạn có. Decode cho Ethernet for phần Mac address rất đơn giản, 6 byte đầu là destination Mac Address và 6 byte kế là source Mac Ađress. 2 byte kế là length hay là type tùy loại Frame sử dụng. Nếu cần thiết bạn có thể decode những frame này sâu hơn để có thể tìm ra IP address của máy đó, thậm chí có thể log lại những packet hay frame của những máy lạ đó gởi ra...

5) Để làm phần này nên nghiên cứu thêm về Ethernet Frame hay TCP/IP header. Nên download thử Ethereal và Windump về dọc thữ đồng thời dùng để so sánh kết quả.

6) Bước 1 nếu quá khó thì bạn có thể thử bằng cách dùng windump hay ethereal capture những packets này vào 1 file, sau đó, chương trình bạn viết dùng WinPCap API interface đọc từ file để lấy từ packet vào và decode so sách trước. Sau khi làm nhuần nhuyển với file rồi và debug sạch sẻ rồi, thì bạn có thể chuyển qua API call khác dùng live traffic.

Chúc thành công.

Quên mất, khi sử dụng WinPCap, những phần socket programming thì người ta đã viết sẳn rồi, mình chỉ cần API ra xài là xong thôi...

ocodileelidoco
22-05-2007, 15:30
nếu mình lưu file chụp được với đuôi .pcap thì đọc file ra sao? mình ko biết format của file này thế nào? (mạng WLAN)

trieudoahong
23-05-2007, 20:18
theo mình nghĩ: bắt kì 1 máy nào khi hoạt động ít nhiều đều gởi các gói broadcast (tìm dhcp, arp...). khi đó mình xài mac trong gói này để so sánh với csdl.

nguyentuantnt
12-03-2009, 21:38
Bạn ơi co tài liệu thi Post lên đi
mình đang cần tài liệu về môn nay

tuanhoanganh
16-03-2009, 12:34
co ai co thu vien <graphics.h> ko cho minh xin di