作者fasthall (Xen)
看板LinuxDev
標題[問題] raw socket建立
時間Mon Dec 26 00:41:09 2011
最近正在學習raw socket的使用方法
參考了這個範例下去跑
http://tinyurl.com/7rcbhff
發現只能抓到tcp的封包
看原始碼line 35的socket建立方法第三個參數
指定了IPPROTO_TCP應該是指這個socket只能聽到tcp?
但是在line 62看他抓到的的確是ip層的封包
轉成ip header也確實可以讀出東西
================================================
所以說如果我要抓tcp udp icmp的東西我要開三個socket嗎
但是範例的程式中為什麼只開一個
卻期望能統計各種封包type的個數?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.183.248
1F:推 alongalone:這個範例不是全抓嗎? 你的OS 跟 socket library是? 12/26 10:41
OS是Mint12(Ubuntu based) Library一樣是Linux raw socket
所以這行socket(AF_INET , SOCK_RAW , IPPROTO_TCP);可以全抓嗎
我跑的統計結果只有TCP和total會增加......是OS問題?
※ 編輯: fasthall 來自: 114.25.183.248 (12/26 13:23)
2F:→ alongalone:如果是我的做法的話,我會讓測試環境單純. 12/27 23:48
3F:→ alongalone:一個switch只接兩台PC.一台丟tcp/udp/icmp.去看統計 12/27 23:49
4F:推 anndy:IPPROTO_TCP只能收tcp, 他的文底下有note 03/03 23:48