Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with open('bits', 'r') as fin:
- input = fin.read()
- s, data = list(int(input[:144], 2).to_bytes(144 // 8, 'little')), input[176:]
- dest_mac_addr = ' '.join(['%02x' % elem for elem in s[:6]])
- print('Destination MAC address:', dest_mac_addr)
- source_mac_addr = ' '.join(['%02x' % elem for elem in s[6:12]])
- print('Source MAC address:', source_mac_addr)
- ether_type = ' '.join(['%02x' % elem for elem in s[12:14]])
- print('Ether Type:', ether_type)
- crc_checksum = int(''.join(['%02x' % elem for elem in s[14:18]]), 16)
- print('CRS Checksum:', crc_checksum)
- VERS = int(data[:4], 2)
- print('VERS:', VERS)
- HLEN = int(data[4:8], 2)
- print('HLEN:', HLEN)
- SERVICE_TYPE = int(data[8:16], 2)
- print('SERVICE TYPE:', SERVICE_TYPE)
- TOTAL_LENGTH = int(data[16:32], 2)
- print('TOTAL LENGTH:', TOTAL_LENGTH)
- IDENTIFICATION = int(data[32:48], 2)
- print('IDENTIFICATION:', IDENTIFICATION)
- FLAGS = int(data[48:51], 2)
- print('FLAGS:', FLAGS)
- FRAGMENT_OFFSET = int(data[51:64], 2)
- print('FRAGMENT OFFSET:', FRAGMENT_OFFSET)
- TIME_TO_LIVE = int(data[64:72], 2)
- print('TIME TO LIVE:', TIME_TO_LIVE)
- PROTOCOL = int(data[72:80], 2)
- print('PROTOCOL:', PROTOCOL)
- HEADER_CHECKSUM = int(data[80:96], 2)
- print('HEADER CHECKSUM:', HEADER_CHECKSUM)
- ADDR = [int(data[i:i+8], 2) for i in range(96, 160, 8)]
- SOURCE_IP_ADDRESS, DESTINATION_IP_ADDRESS = '.'.join([str(elem) for elem in ADDR[:4]]), '.'.join([str(elem) for elem in ADDR[-4:]])
- print('SOURCE IP ADDRESS:', SOURCE_IP_ADDRESS)
- print('DESTINATION IP ADDRESS:', DESTINATION_IP_ADDRESS)
- s = [chr(int(data[i:i+8], 2)) for i in range(160, 328, 8)]
- print('DATA: ' + ''.join(s))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement