我正試圖找到最簡單的方法來截獲我的電腦在C++程序中發送的TCP SYN數據包。我知道有幾個選項。一個會監視所有的流量,並且只是有選擇地處理SYN數據包而對其他數據無所作爲。我遇到的另一個選擇是使用包過濾實用程序將SYN數據包轉發到我的程序。有人建議我使用netfilter。截取/重新編程TCP SYN數據包到Linux中的C++程序
我想知道是否有其他選擇,或者我應該鑽研netfilter。另外,關於如何使用netfilter做到這一點的任何指針都會有所幫助。
編輯:我想攔截SYN包,可能需要對其進行修改再注入回網絡
編輯之前(重新路由到不同的目的地,改變目的端口等):我是能夠做到這一點使用iptables和libnetfilter_queue的組合。我用ipfilter將所有TCP SYN數據包重定向到一個特定的隊列(這是使用一個簡單的命令)
然後在一個C程序中,我能夠使用libnetfilter_queue API來訪問隊列中的數據包並分析它們並將它們重新註冊回網絡。
請說明你是否確實要重新路由 - 你建議你做主題,但不要在問題 – Alnitak 2009-02-27 10:01:30
中提到我想攔截SYN數據包,可能需要修改它(重新路由到不同的目的地,改變目標端口等),然後將其重新注入網絡 – 2009-02-27 10:22:05