Re: [問題] 如果接收由firewall轉送(forward)過來ꨠ…

看板Python作者 (阿呆學程式)時間18年前 (2006/05/16 12:25), 編輯推噓3(300)
留言3則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《yatung1700 (阿呆學程式)》之銘言: : 標題: Re: [問題] 如果接收由firewall轉送(forward)過來ꨠ… : 時間: Mon May 15 18:47:04 2006 : : ※ 引述《yatung1700 (阿呆學程式)》之銘言: : : 標題: [問題] 如果接收由firewall轉送(forward)過來的封包? : : 時間: Sun May 14 17:24:32 2006 : : : : 各位同好大家好: : : 我在firewall上設定將所有封包轉送至某一台機器上,在該機器上,我建一個socket, : : 不論是tcp or udp都試過,但…都無法接收到forward過來的封包,到底要如何才能接 : : 收轉來的封包呢? : : : : [udp receive server] : : ======================= : : import socket : : : : sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) : : sock.bind(('',999)) : : while 1: : : line=sock.recvfrom(8096) : : print line : : : : : : ==>firewall轉送封包過來,此程式一直都沒有反應。我另發送udp封包給此server時, : : 接收是沒問題的。所以應該是我用錯接收方式。不知要如何接收才正確呢? : : (firewall轉送封包是沒問題的!^_^) : : : : -- : : ※ 發信站: 批踢踢實業坊(ptt.cc) : : ◆ From: 220.133.38.221 : : 推 ericsk:把 recvfrom 換成 recv 試試看 05/14 20:14 : : 感謝樓上的回答。但....... : recv()是用在TCP protocol上的,而TCP socket我試過了,也是不行耶! : 還有什麼方法嗎? : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 140.115.130.163 : 推 ericsk:你要不要用別的工具看封包?比方說 tcp_dump 05/15 21:11 我不是要看封包,我是要接收firewall轉送(forward)過來的封包!^_^ 我要對這些封包做處理,譬如更改、再轉送出去等等… 所以我想開一個socket接受這些封包。 我在C++版也post文章詢問,有人回覆說用SOCK_RAW可以接收forward來的封包, 但我若用s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_RAW) s.bind(("",999)) 無法bind()成功。bind()時雖不會有錯誤產生,但用netstat -a卻看不到999這個port有 被用到,當然,也接收不到任何封包。不知這個SOCK_RAW正確用法為何?抑或是有其它 更佳的方法呢?^_^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.38.221

05/16 12:52, , 1F
會希望你用tcpdump看,主要就是看封包的dest到底對不對
05/16 12:52, 1F

05/16 13:35, , 2F
如果最後一個參數改成 socket.IPPROTO_UDP 符合你的需求嗎
05/16 13:35, 2F

05/16 18:49, , 3F
tcpdump我試試。 IPPROTO_UDP也是不行的!^_^
05/16 18:49, 3F
文章代碼(AID): #14QLGVKA (Python)
文章代碼(AID): #14QLGVKA (Python)