簡體   English   中英

帶有原始套接字的python套接字setsockopt

[英]python socket setsockopt with raw socket

只需使用python socket raw發送tcp_syn。 我在這里遵循代碼,但是運行代碼時出現以下錯誤:

Traceback (most recent call last):
  File "findPort.py", line 122, in <module>
    s.sendto(packet, (dest_ip , 27015 ))    # put this in a loop if you want to flood the target
socket.error: [Errno 22] Invalid argument

但是,當我刪除setsockopt時:

#s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)

代碼運行平穩。 不幸的是,如您所見,wireshark嗅探了兩個tcp頭數據。 一個是內核添加,另一個是我自己添加。

所以問題是:

  1. 我上面顯示的錯誤是什么意思?
  2. 為什么我刪除setsockopt錯誤會消失?
  3. 如何使用python 2.7發送tcp_syn?

提前非常感謝~~~~~~

讓我回答我自己的問題。 python無法發送原始套接字的主要原因是Mac / Windows不支持自定義TCP / UDP標頭。 如果要編寫自己的tcp / udp標頭並將其發送到net,請使用LINUX操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM