Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. with open('bits', 'r') as fin:
  2.     input = fin.read()
  3.     s, data = list(int(input[:144], 2).to_bytes(144 // 8, 'little')), input[176:]
  4.     dest_mac_addr = ' '.join(['%02x' % elem for elem in s[:6]])
  5.     print('Destination MAC address:', dest_mac_addr)
  6.     source_mac_addr = ' '.join(['%02x' % elem for elem in s[6:12]])
  7.     print('Source MAC address:', source_mac_addr)
  8.     ether_type = ' '.join(['%02x' % elem for elem in s[12:14]])
  9.     print('Ether Type:', ether_type)
  10.     crc_checksum = int(''.join(['%02x' % elem for elem in s[14:18]]), 16)
  11.     print('CRS Checksum:', crc_checksum)
  12.     VERS = int(data[:4], 2)
  13.     print('VERS:', VERS)
  14.     HLEN = int(data[4:8], 2)
  15.     print('HLEN:', HLEN)
  16.     SERVICE_TYPE = int(data[8:16], 2)
  17.     print('SERVICE TYPE:', SERVICE_TYPE)
  18.     TOTAL_LENGTH = int(data[16:32], 2)
  19.     print('TOTAL LENGTH:', TOTAL_LENGTH)
  20.     IDENTIFICATION = int(data[32:48], 2)
  21.     print('IDENTIFICATION:', IDENTIFICATION)
  22.     FLAGS = int(data[48:51], 2)
  23.     print('FLAGS:', FLAGS)
  24.     FRAGMENT_OFFSET = int(data[51:64], 2)
  25.     print('FRAGMENT OFFSET:', FRAGMENT_OFFSET)
  26.     TIME_TO_LIVE = int(data[64:72], 2)
  27.     print('TIME TO LIVE:', TIME_TO_LIVE)
  28.     PROTOCOL = int(data[72:80], 2)
  29.     print('PROTOCOL:', PROTOCOL)
  30.     HEADER_CHECKSUM = int(data[80:96], 2)
  31.     print('HEADER CHECKSUM:', HEADER_CHECKSUM)
  32.     ADDR = [int(data[i:i+8], 2) for i in range(96, 160, 8)]
  33.     SOURCE_IP_ADDRESS, DESTINATION_IP_ADDRESS = '.'.join([str(elem) for elem in ADDR[:4]]), '.'.join([str(elem) for elem in ADDR[-4:]])
  34.     print('SOURCE IP ADDRESS:', SOURCE_IP_ADDRESS)
  35.     print('DESTINATION IP ADDRESS:', DESTINATION_IP_ADDRESS)
  36.     s = [chr(int(data[i:i+8], 2)) for i in range(160, 328, 8)]
  37.     print('DATA: ' + ''.join(s))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement