Exemple #1
0
 def __init__(self):
     self.filesize=0
     self.chunksize=0
     self.pointer=0
     self.daddr=""
     self.saddr=""
     self.s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_RAW)
     self.pg=PacketGen()
Exemple #2
0
class FileHandler:
    def __init__(self):
        self.filesize=0
        self.chunksize=0
        self.pointer=0
        self.daddr=""
        self.saddr=""
        self.s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_RAW)
        self.pg=PacketGen()
    def send_file(self, file, chunk,saddr,daddr):
        self.filesize = os.path.getsize(file)
        self.chunksize = self.filesize / chunk
        self.pointer = chunk
        self.pg.set_saddr(saddr)
        self.pg.set_daddr(daddr)
        ip_header=self.pg.construct_ip_h()
        fr = open(file, 'rb')
        while True:
            fr.seek(self.pointer - chunk) #changing pointer to read parts of file
            buf = fr.read(chunk)
            if (buf == ''): #we reached eof , get out now.
                break
            icmp_packet=self.pg.construct_icmp_p(buf)
            packet=ip_header+icmp_packet
            self.s.sendto(packet,(daddr,0))
            self.pointer+=chunk
            time.sleep(.0005) #Limiting the time interval to avoid packet loss
        fr.close()


    def filesize(self,file):
        return os.path.getsize(file)
Exemple #3
0
class Proto:
    def __init__(self):
        self.pg = PacketGen()
        self.s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)

    def max_mtu(self, saddr, daddr):
        self.pg.set_saddr(saddr)
        self.pg.set_daddr(daddr)
        ip_header = self.pg.construct_ip_h()
        mtu_size = 64
        while mtu_size <= 1500:
            icmp_packet = self.pg.construct_icmp_p("a" * mtu_size)
            packet = ip_header + icmp_packet
            self.s.sendto(packet, (daddr, 0))
            mtu_size += 64
        return mtu_size
Exemple #4
0
 def __init__(self):
     self.pg = PacketGen()
     self.s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)