看板 LinuxDev 關於我們 聯絡資訊
最近正在學習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
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)
alongalone:如果是我的做法的話,我會讓測試環境單純. 12/27 23:48
alongalone:一個switch只接兩台PC.一台丟tcp/udp/icmp.去看統計 12/27 23:49
anndy:IPPROTO_TCP只能收tcp, 他的文底下有note 03/03 23:48