docs: def _read_file_header(self):
          """Reads out the file header for the arc file. If version was
          not provided, this will autopopulate it."""
          header = self.fileobj.readline()
          payload1 = self.fileobj.readline()
          payload2 = self.fileobj.readline()
          version, reserved, organisation = payload1.split(None, 2)
          self.fileobj.readline() # Lose the separator newline
          self.header_read = True
          # print "--------------------------------------------------"
          # print header,"\n", payload1, "\n", payload2,"\n"
          # print "--------------------------------------------------"
          if self.version and int(self.version) != version:
              raise IOError("Version mismatch. Requested version was '%s' but version in file was '%s'"%(self.version, version))
          
          if version == '1':
              url, ip_address, date, content_type, length = header.split()
              self.file_headers = {"ip_address" : ip_address,
                                   "date" : datetime.datetime.strptime(date, "%Y%m%d%H%M%S"),
                                   "org" : organisation}
              self.version = 1
          elif version == '2':
              url, ip_address, date, content_type, result_code, checksum, location, offset, filename, length  = header.split()
              self.file_headers = {"ip_address" : ip_address,
                                   "date" : datetime.datetime.strptime(date, "%Y%m%d%H%M%S"),
                                   "org" : organisation}
              self.version = 2
          else:
              raise IOError("Unknown ARC version '%s'"%version)