※ 引述《feying (子祈)》之銘言:
: 有看過winsock的教學,可是我不是要針對特定的server監聽
: 應該也不需要client/server連線的動作,所以好像也不是用winsock元件
還是用 winsock ..
用 winsock 的寫 sniffer 有兩個重點,
第一是開一個 raw ip socket
socket type設SOCK_RAW, protocol type設IPPROTO_RAW
這樣可以收到 IP 層以上的原始資料(包含header而不是純user data)
再來是要設定ioctlsocket開啟SIO_RCVALL
這樣才會連不是屬於自己的資料(ip/mac不合)都一起收上來
如果想收到 layer-2 的資料(像ARP、ethernet header)
那winsock就沒辦法做了(windows本身的限制)
這要透過 WinPcap (http://www.winpcap.org/) 安裝特殊的driver
來接收這些資料, 甚至可以自己送出raw packet..
但他本身沒提供可以給VB直接使用的元件,
不過應該還是可以用Declare來使用他提供的DLL..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.136.137