30 lines
885 B
Python
30 lines
885 B
Python
import json
|
|
import uuid
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
|
|
|
|
class CaptureMetadata:
|
|
def __init__(self, device_id, capture_dir):
|
|
self.device_id = device_id
|
|
self.capture_id = str(uuid.uuid4())
|
|
self.capture_date = datetime.now().isoformat()
|
|
self.capture_dir = Path(capture_dir)
|
|
self.capture_file = ""
|
|
self.start_time = ""
|
|
self.stop_time = ""
|
|
self.tcpdump_command = ""
|
|
self.interface = ""
|
|
self.device_ip_address = ""
|
|
|
|
def build_capture_file_name(self):
|
|
self.capture_file = f"{self.device_id}_{self.capture_id}.pcap"
|
|
|
|
def to_dict(self):
|
|
return self.__dict__
|
|
|
|
def save_to_file(self, file_path=None):
|
|
file_path = file_path or self.capture_dir / 'metadata.json'
|
|
with open(file_path, 'w') as f:
|
|
json.dump(self.to_dict(), f, indent=4)
|