首先,我試圖從Netfilter隊列有效載荷的有效載荷中獲取源地址和目標端口(使用nfq_get_payload函數檢索有效載荷)。下面的問題是問同樣的事情,得到一個正確的答案:nfq_get_payload如何構造其返回數據?
How to extract source and destination port number from packet in queue of iptables
不幸的是,沒有解釋爲什麼增加20和22的地址讓你在正確的位置讀取信息。我認爲這是因爲數據的結構(顯然),但是如果有定義的結構,它是什麼?
該文檔沒有明確地解釋數據是如何格式化的,只是'該函數檢索的數據類型取決於使用nfq_set_mode()函數設置的模式「,但是那麼set_mode的文檔不會提及有關數據類型的任何內容,並且源代碼不會立即顯示任何內容
我覺得這一定是我常見的網絡編程結構中非常重要的東西,我缺少或不理解。
注:nfq_get_payload功能:http://www.netfilter.org/projects/libnetfilter_queue/doxygen/group__Parsing.html#gaf79628558c94630e25dbfcbde09f2933
不是應該: '結構iphdr * ip_info =(結構iphdr *)(數據+的sizeof(結構ethhdr));'? 爲什麼不跳過'struct ethhdr'以轉到'struct iphdr'? – elmazzun