This repository was archived by the owner on Feb 6, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathinstall.sh
More file actions
161 lines (143 loc) · 5.04 KB
/
Copy pathinstall.sh
File metadata and controls
161 lines (143 loc) · 5.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#!/bin/bash
set -e
# Tool made by Lokesh Kumar
# Updated by Gemini for Multi-OS support and security
# --- Define Colors ---
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[93m'
CYAN='\033[96m'
RESET='\033[0m'
# --- Function to display banner ---
display_banner() {
clear
echo -e "${CYAN}"
# Only use 'figlet' and 'lolcat' after they are installed
if command -v figlet &> /dev/null && command -v lolcat &> /dev/null; then
figlet -f slant "IP Scanner Pro" | lolcat
else
echo "IP Scanner Pro"
fi
echo -e "${GREEN}By Lokesh Kumar${RESET}"
echo -e "${MAGENTA}---------------------------------${RESET}"
echo -e "${YELLOW}Advanced IP Scanning Tool - Installer${RESET}"
echo -e "${MAGENTA}---------------------------------${RESET}"
sleep 2
}
# --- Detect OS and Package Manager ---
OS="Unsupported"
PKG_MANAGER=""
INSTALL_CMD=""
UPDATE_CMD=""
BIN_DIR="/usr/local/bin" # Default
SUDO_CMD="sudo"
if [[ $(uname -o) == "Android" ]]; then
OS="Termux"
PKG_MANAGER="pkg"
SUDO_CMD="" # Termux doesn't use sudo
BIN_DIR="$PREFIX/bin"
# Required packages for Termux
PACKAGES="git python python-pip curl wget figlet jq nmap coreutils"
PYTHON_PACKAGES="requests lolcat"
PYTHON_CMD="pip"
elif [[ -f /etc/debian_version ]]; then
OS="Debian-based (e.g., Kali, Ubuntu)"
PKG_MANAGER="apt-get"
PACKAGES="git python3 python3-pip curl wget figlet jq nmap"
PYTHON_PACKAGES="requests lolcat"
PYTHON_CMD="pip3"
elif [[ -f /etc/arch-release ]]; then
OS="Arch Linux"
PKG_MANAGER="pacman"
PACKAGES="git python python-pip curl wget figlet jq nmap"
PYTHON_PACKAGES="requests lolcat"
PYTHON_CMD="pip3"
elif [[ -f /etc/fedora-release ]]; then
OS="Fedora"
PKG_MANAGER="dnf"
PACKAGES="git python3 python3-pip curl wget figlet jq nmap"
PYTHON_PACKAGES="requests lolcat"
PYTHON_CMD="pip3"
elif [[ $(uname -s) == "Darwin" ]]; then
OS="macOS"
PKG_MANAGER="brew"
if ! command -v brew &> /dev/null; then
echo -e "${RED}Homebrew (brew) not found.${RESET}"
echo -e "${YELLOW}Please install Homebrew first: /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"${RESET}"
exit 1
fi
PACKAGES="git python3 curl wget figlet jq nmap"
PYTHON_PACKAGES="requests lolcat"
PYTHON_CMD="pip3"
else
echo -e "${RED}Unsupported operating system.${RESET}"
exit 1
fi
echo -e "${GREEN}Detected OS: $OS${RESET}"
# --- Define Installation Commands ---
case $PKG_MANAGER in
"apt-get")
UPDATE_CMD="$SUDO_CMD apt-get update -y"
INSTALL_CMD="$SUDO_CMD apt-get install -y $PACKAGES"
;;
"pacman")
UPDATE_CMD="$SUDO_CMD pacman -Syu --noconfirm"
INSTALL_CMD="$SUDO_CMD pacman -S --noconfirm $PACKAGES"
;;
"dnf")
UPDATE_CMD="$SUDO_CMD dnf check-update -y"
INSTALL_CMD="$SUDO_CMD dnf install -y $PACKAGES"
;;
"brew")
UPDATE_CMD="brew update"
INSTALL_CMD="brew install $PACKAGES"
;;
"pkg")
UPDATE_CMD="pkg update -y && pkg upgrade -y"
INSTALL_CMD="pkg install -y $PACKAGES"
;;
esac
# --- Start Installation ---
clear
echo -e "${YELLOW}Updating $OS packages... (This may take some time)${RESET}"
eval "$UPDATE_CMD"
echo -e "${YELLOW}Installing required packages: $PACKAGES...${RESET}"
eval "$INSTALL_CMD"
echo -e "${YELLOW}Installing Python packages: $PYTHON_PACKAGES...${RESET}"
# --- FIX (SC2086) ---
# We intentionally want word splitting for pip, so we disable the warning.
# shellcheck disable=SC2086
$SUDO_CMD $PYTHON_CMD install $PYTHON_PACKAGES
# --- Clone/Install the tool ---
REPO_URL="https://github.com/trmxvibs/IPScanPro"
INSTALL_DIR="$HOME/.ipscanner"
if [ -d "$INSTALL_DIR" ]; then
echo -e "${YELLOW}Old installation found... Removing it...${RESET}"
rm -rf "$INSTALL_DIR"
fi
echo -e "${YELLOW}Cloning repository into ${INSTALL_DIR}...${RESET}"
git clone "$REPO_URL" "$INSTALL_DIR"
echo -e "${YELLOW}Copying 'ip' script to ${BIN_DIR}...${RESET}"
$SUDO_CMD cp "$INSTALL_DIR/ip" "$BIN_DIR/ip"
$SUDO_CMD chmod +x "$BIN_DIR/ip"
# --- [SECURITY FIX] Setup API Key ---
CONFIG_DIR="$HOME/.config/ipscanner"
CONFIG_FILE="$CONFIG_DIR/config"
mkdir -p "$CONFIG_DIR"
echo -e "\n${CYAN}--- API Key Setup (Required) ---${RESET}"
echo -e "This tool uses ${GREEN}ipinfo.io${RESET}."
echo -e "Please sign up on their website to get your FREE Access Token."
# --- FIX (SC2162) ---
# Added -r to read to prevent backslashes from being mangled.
read -r -p "Paste your ipinfo.io Access Token here: " access_token
if [ -z "$access_token" ]; then
echo -e "${RED}API Token not entered. Please add it to $CONFIG_FILE later.${RESET}"
echo "ACCESS_TOKEN=YOUR_KEY_HERE" > "$CONFIG_FILE"
else
echo "ACCESS_TOKEN=$access_token" > "$CONFIG_FILE"
echo -e "${GREEN}API Key successfully saved to $CONFIG_FILE.${RESET}"
fi
# --- Finish ---
display_banner
echo -e "${GREEN}Installation complete!${RESET}"
echo -e "${YELLOW}You can now close this terminal, open a new one, and run the tool using the 'ip' command.${RESET}"