Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从多个源IP Scapy发送流量_Python_Linux_Networking_Scapy - Fatal编程技术网

Python 从多个源IP Scapy发送流量

Python 从多个源IP Scapy发送流量,python,linux,networking,scapy,Python,Linux,Networking,Scapy,我正在尝试使用scapy(在Ubuntu上)通过python发送一些流量。我正在使用一系列源IP(10.0.0.32/29)。一切似乎都在运行(至少我看到wireshark中的流量,它到达了我的防火墙),但我在使用不是eth0适配器主IP的IP地址完成TCP握手时遇到了问题。有人知道这是否可能做到: 资料来源: from scapy.all import * import random sp=random.randint(1024,65535) ip=IP(src="10.0.0.2

我正在尝试使用scapy(在Ubuntu上)通过python发送一些流量。我正在使用一系列源IP(10.0.0.32/29)。一切似乎都在运行(至少我看到wireshark中的流量,它到达了我的防火墙),但我在使用不是eth0适配器主IP的IP地址完成TCP握手时遇到了问题。有人知道这是否可能做到:

资料来源:

 from scapy.all import *
 import random


 sp=random.randint(1024,65535)
 ip=IP(src="10.0.0.234/29",dst="www.google.com")
 SYN=TCP(sport=sp, dport=80,flags="S",seq=10)
 SYNACK=sr1(ip/SYN)

 my_ack=SYNACK.seq+1
 ACK=TCP(sport=sp,dport=80,flags="A",seq=11,ack=my_ack)
 send(ip/ACK)
 payload="SEND TCP"

 PUSH=TCP(sport=sp,dport=80,flags="PA",seq=11,ack=my_ack)
 send(ip/PUSH/payload)

因为您在NAT/路由器后面,所以您应该检查它是否允许您使用全部IP。如果运行DHCP协议,eth0通常会收到唯一的IP地址,该地址将是专用网络中唯一的路由

此外,您必须确保您的内核知道哪些IP属于它,否则它将丢弃响应数据包。如果要使用全范围的IP,您有两个选择:

  • 创建虚拟mac地址,每个地址通过DHCP请求IP
  • 配置路由器,使其将完整IP表静态路由到您的主机,并且您打算使用
  • 一旦这样做了,就没有理由不能从多个源IP同步/确认。从远程服务器的角度来看,您尝试执行的操作与本地网络中同时请求页面的多台计算机之间没有任何区别