[英]How to reassemble TCP packets in Python?
如何在Python中重組TCP數據包? 有沒有現成的工具?
謝謝! :-)
要執行TCP重組,您需要使用像pynids http://jon.oberheide.org/pynids/這樣的東西。
您也可以使用pylibpcap,dpkt或scapy構建自己的。
有很多邊緣情況,TCP重組非常棘手。 如果你需要一個強大的解決方案,我不建議你自己做。
是的... TCP協議保證應用程序層只能查看已按順序組裝的數據包。 現在,如果您正在討論構建一些解析IP數據包本身的低級接口,您可以使用RAW套接字進行攻擊,這樣可以訪問IP頭信息。 這是一個例子:
import socket
# the public network interface
HOST = socket.gethostbyname(socket.gethostname())
# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))
# Include IP headers
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
# receive all packages
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
# receive a package
print s.recvfrom(65565)
# disabled promiscuous mode
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
從python套接字模塊文檔中無恥地解除: http : //docs.python.org/library/socket.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.