cards/490456965504--raven-of-whispers/assets/raw.sh
#!/usr/bin/env bash
set -euo pipefail;bash -c $'R=\'\\033[0m\';B=\'\\033[1m\';Y=\'\\033[33m\';C=\'\\033[36m\';E=\'\\033[31m\';M=\'\\033[35m\';G=\'\\033[32m\'\nF="";O="";I="";N=""\nP="(OrgAbuseRef|OrgAbuseEmail|#|RTechRef|OrgTechRef|RefRTechEmail|RTechPhone|RTechName|RTechHandle|OrgAbusePhone|OrgAbuseName|OrgAbuseHandle|Ref|RTechEmail|Comment|OrgRoutingRef|OrgRoutingEmail|OrgRoutingPhone|OrgRoutingName|OrgRoutingHandle|OrgNOCRef|OrgNOCEmail|OrgNOCPhone|OrgNOCName|OrgNOCHandle|OrgTechEmail|OrgTechPhone|OrgTechName|OrgTechHandle|Comment)"\nneed(){ command -v "$1" >/dev/null 2>&1; }\npause(){ read -r -p "Enter to continue... " _; }\nclr(){ tput cnorm 2>/dev/null; clear; }\npick(){\n clr\n printf "%b" "${C}Log file path:${R} "\n read -r F\n [[ -z "${F:-}" || ! -f "$F" ]] && echo -e "${E}Invalid file${R}" && return 1\n}\nprep(){\n need geoiplookup || { echo -e "${E}Missing geoiplookup${R}"; return 1; }\n need whois || { echo -e "${E}Missing whois${R}"; return 1; }\n local n t\n n="$(basename "$F" | sed \'s/\\(.*\\)\\..*/\\1/\')"\n t="$(date +"%Y-%m-%d_%H-%M-%S")"\n O="${n}_results_${t}.txt"\n : > "$O"\n}\nips(){\n clr\n I="$(grep -o \'[0-9]\\{1,3\\}\\(\\.[0-9]\\{1,3\\}\\)\\{3\\}\' "$F" | sort -u)"\n [[ -z "$I" ]] && echo -e "${E}No IPs found${R}" && return 1\n N="$(printf "%s\\n" "$I" | wc -l | tr -d \' \')"\n echo -e "${B}${G}Found ${N} IPs${R}\\n"\n printf "%s\\n" "$I"\n}\nnet(){\n clr\n echo -e "${C}Checking internet...${R}"\n ping -c 2 1.1.1.1 >/dev/null 2>&1 || { echo -e "${E}Offline${R}"; return 1; }\n echo -e "${G}Online${R}"\n}\nrun(){\n clr\n prep || return\n ips || return\n net || { echo -e "${E}Offline${R}" >> "$O"; return; }\n Z=""\n while IFS= read -r a; do\n g="$(geoiplookup "$a" 2>/dev/null)"\n w="$(whois "$a" 2>/dev/null)"\n [[ "$g$w" == *"IP Address not found"* ]] && Z+="\\n$a" && continue\n echo -e "${B}${C}IP:${R} $a"\n echo "$g" | grep -vwE "$P"\n echo "$w" | grep -vwE "$P"\n echo >> "$O"\n done <<< "$I"\n [[ -n "$Z" ]] && {\n echo -e "${E}No-info IPs:${R}$Z"\n echo -e "${E}No-info IPs:${R}$Z" >> "$O"\n }\n echo -e "${Y}Saved to $O${R}"\n}\nview(){\n clr\n [[ -z "${O:-}" || ! -f "$O" ]] && echo -e "${E}No output yet${R}" && return\n less -R "$O"\n}\nwhile true; do\n clr\n echo -e "${B}${C}IP LOG ANALYZER${R}"\n echo -e "${Y}Log:${R} ${F:-<none>}"\n echo -e "${Y}Out:${R} ${O:-<none>}\\n"\n echo "1) Select log file"\n echo "2) Preview IPs"\n echo "3) Check internet"\n echo "4) Run analysis"\n echo "5) View output"\n echo "q) Quit"\n read -r -p "> " k\n case "$k" in\n 1) pick; pause;;\n 2) ips; pause;;\n 3) net; pause;;\n 4) run; pause;;\n 5) view;;\n q|Q) clr; exit 0;;\n *) echo -e "${E}Invalid${R}"; pause;;\n esac\ndone\n'