sniffer 的問題 |
答題得分者是:microbean
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
我參考http://wvw.ttian.net/article/show.php?id=101
試著寫sniffer程式,但run的時候都沒有辦法正常的run,麻煩有經驗的前輩們幫我測一下,問題出在哪?
1.我的系統是WIN98和BCB5 2.完整source code 如下: 3.每次執行到這一行就會跳出,不知是硬體的問題?還是該如何修正?
if (setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char*)&flag, sizeof(flag)) == SOCKET_ERROR)
throw Exception("setsockopt IP_HDRINCL error!"); 4.再來比較有可能有問題的是這一行
if (ioctlsocket(sock, SIO_RCVALL, &dwValue) != 0)
throw Exception("ioctlsocket SIO_RCVALL error!"); 5.因為查了幾個網站的code都和這一個大同小異,但我都是會卡在這兩個地方,不知各位先進是否也曾遇到相同的狀況,該如何解決呢?
//--------------------------------------------------------------------------- #include |
microbean
初階會員 發表:1 回覆:43 積分:38 註冊:2004-04-09 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
非常感謝 microbean 前輩的回答,雖然不是直接回答我的問題,但也帶給我很大的幫助,謝謝. 我的問題已經解決了,解決的方式是:
1.作業系統在WINXP下,似乎WIN98會比較麻煩點,沒在網站上找到.
2.if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) == INVALID_SOCKET)
改成 if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP)) == INVALID_SOCKET)
但會不會影響到攔截到的訊息會少一點,我就不知道了,反正我可抓到我的電腦tcp資料進出就可以了.
3.要把 ws2_32.lib 加進來,沒加進來會在bind那行就跳出.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |