ip_packet.py 817 B

123456789101112131415161718192021222324252627282930313233
  1. import socket
  2. import struct
  3. class IPPacket:
  4. # data = bytes()
  5. def __init__(self):
  6. self.version = 4
  7. self.hlen = 5
  8. self.service = 0
  9. self.len = 0
  10. self.id = 54321
  11. self.flags = 0
  12. self.fragment_ofset = 0
  13. self.ttl = 255
  14. self.ulp = 6
  15. self.crc = 0
  16. self.src = socket.inet_aton("1.1.1.1")
  17. self.dst = socket.inet_aton("1.1.1.1")
  18. self.opt = None
  19. self.data = b''
  20. print(type(self.data))
  21. def to_hex_string(self):
  22. ip_vet_hlen = (self.version << 4) + self.hlen
  23. return struct.pack('!BBHHHBBH4s4s', ip_vet_hlen, self.service, self.len,
  24. self.id, self.fragment_ofset, self.ttl,
  25. self.ulp, self.crc, self.src, self.dst) + self.data