updated python script
parent
486524d379
commit
a0abfb3745
43
ipGeo.py
43
ipGeo.py
|
@ -3,12 +3,31 @@ import requests
|
||||||
import json
|
import json
|
||||||
import csv
|
import csv
|
||||||
import argparse
|
import argparse
|
||||||
from colorama import Fore
|
from colorama import Fore, Style
|
||||||
from datetime import date
|
from datetime import date
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
def display_banner():
|
||||||
|
"""Display a welcome banner."""
|
||||||
|
banner = f"""
|
||||||
|
{Fore.BLUE + Style.BRIGHT}
|
||||||
|
|
||||||
|
$$$$$$$\\ $$$$$$$\\ $$$$$$$$\\ $$$$$$\\ $$$$$$$\\ $$$$$$$$\\ $$\\ $$\\ $$\\
|
||||||
|
$$ __$$\\ $$ __$$\\ $$ _____|$$ __$$\\ $$ __$$\\ $$ _____|$$ | $$ |$$ |
|
||||||
|
$$ | $$ |$$ | $$ |$$ | $$ / $$ |$$ | $$ |$$ | $$ | $$ |$$ |
|
||||||
|
$$ | $$ |$$$$$$$ |$$$$$\\ $$$$$$$$ |$$ | $$ |$$$$$\\ $$ | $$ |$$ |
|
||||||
|
$$ | $$ |$$ __$$< $$ __| $$ __$$ |$$ | $$ |$$ __| $$ | $$ |$$ |
|
||||||
|
$$ | $$ |$$ | $$ |$$ | $$ | $$ |$$ | $$ |$$ | $$ | $$ |$$ |
|
||||||
|
$$$$$$$ |$$ | $$ |$$$$$$$$\\ $$ | $$ |$$$$$$$ |$$ | \\$$$$$$ |$$$$$$$$\\
|
||||||
|
\\_______/ \\__| \\__|\\________|\\__| \\__|\\_______/ \\__| \\______/ \\________|
|
||||||
|
|
||||||
|
{Style.RESET_ALL}Welcome to the PCAP IP Extractor and Geolocator!
|
||||||
|
"""
|
||||||
|
print(banner)
|
||||||
|
|
||||||
|
|
||||||
def get_local_ips():
|
def get_local_ips():
|
||||||
"""Retrieve a list of local IPs and their subnets."""
|
"""Retrieve a list of local IPs and their subnets."""
|
||||||
local_ips = set()
|
local_ips = set()
|
||||||
|
@ -139,14 +158,32 @@ def export_result(data, output_format):
|
||||||
print(Fore.GREEN + "\n **Report Exported Successfully!**")
|
print(Fore.GREEN + "\n **Report Exported Successfully!**")
|
||||||
|
|
||||||
|
|
||||||
|
def interactive_mode():
|
||||||
|
"""Run the script in interactive mode."""
|
||||||
|
print(Fore.YELLOW + "Interactive Mode: Please enter the path to the pcap file:")
|
||||||
|
pcap_file = input("Pcap File Path: ").strip()
|
||||||
|
print(Fore.YELLOW + "Choose output format (json, csv, txt, md):")
|
||||||
|
output_format = input("Output Format: ").strip().lower()
|
||||||
|
|
||||||
|
if output_format not in ['json', 'csv', 'txt', 'md']:
|
||||||
|
print(Fore.RED + "[!] Invalid output format. Defaulting to json.")
|
||||||
|
output_format = 'json'
|
||||||
|
|
||||||
|
read_pcap(pcap_file, output_format)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
display_banner() # Call the display banner function
|
||||||
parser = argparse.ArgumentParser(description='Extract IP addresses from pcap files and geolocate them.')
|
parser = argparse.ArgumentParser(description='Extract IP addresses from pcap files and geolocate them.')
|
||||||
parser.add_argument('pcap', help='Path to the pcap file.')
|
parser.add_argument('pcap', nargs='?', help='Path to the pcap file.')
|
||||||
parser.add_argument('--format', choices=['json', 'csv', 'txt', 'md'], default='json', help='Output format (default: json).')
|
parser.add_argument('--format', choices=['json', 'csv', 'txt', 'md'], default='json', help='Output format (default: json).')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
read_pcap(args.pcap, args.format)
|
if args.pcap:
|
||||||
|
read_pcap(args.pcap, args.format)
|
||||||
|
else:
|
||||||
|
interactive_mode() # Enter interactive mode if no arguments are provided
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in New Issue