BASH скрипт, който показва публична и частна информация за IP адрес в Linux
Това е лесен за използване BASH скрипт, който показва както публична, така и частна информация за IP адрес в Linux. Скриптът използва curl
за получаване на публична информация от външна услуга и вградени команди за локалната информация.
Обяснение на скрипта:
- Проверка за инсталирани зависимости: Скриптът проверява дали
curl
иjq
са инсталирани.curl
се използва за извличане на публична информация за IP адреса, аjq
се използва за по-удобен формат на JSON данните. - Функции за показване на информация: Има две функции – една за публична информация и една за частна информация .
- Функция за показване на меню: съдържа опциите за избор.
- Основен цикъл: Докато потребителят не избере да излезе, скриптът ще продължава да показва менюто и да изпълнява избраните действия.
- Опция за повторение или изход: След изпълнението на всяка избрана опция, потребителят ще бъде попитан дали иска да направи нов избор или да излезе.
Този скрипт ще продължи да работи, докато потребителят не реши да излезе чрез избиране на опция 4
или отговаряйки с не
на въпроса за нов избор.
За да използвате скрипта, запишете го в текстов файл (например ip_info.sh
), направете го изпълним с командата chmod +x ip_info.sh
, и го стартирайте с ./ip_info.sh
.
#!/bin/bash
# Скрипт за показване на частна и публична информация за IP адрес
# Проверка дали curl е инсталиран
if ! command -v curl &> /dev/null; then
echo "Моля, инсталирайте curl, за да използвате този скрипт."
exit 1
fi
# Функция за показване на публична информация за IP
function show_public_ip_info {
echo "Публична информация за IP:"
public_ip=$(curl -s ifconfig.me)
echo "Публичен IP адрес: $public_ip"
echo "Информация за публичен IP:"
curl -s ipinfo.io/$public_ip | jq .
echo
}
# Функция за показване на частна информация за IP
function show_private_ip_info {
echo "Частна информация за IP:"
private_ip=$(hostname -I | awk '{print $1}')
echo "Частен IP адрес: $private_ip"
echo "Информация за мрежов интерфейс:"
ip addr show | grep -A2 "$private_ip"
echo
}
# Проверка дали jq е инсталиран
if ! command -v jq &> /dev/null; then
echo "Моля, инсталирайте jq, за да използвате този скрипт за по-добър формат на JSON данни."
echo "Опитвам се да покажа информация без jq..."
show_public_ip_info() {
echo "Публична информация за IP:"
public_ip=$(curl -s ifconfig.me)
echo "Публичен IP адрес: $public_ip"
echo "Информация за публичен IP:"
curl -s ipinfo.io/$public_ip
echo
}
fi
# Функция за показване на меню
function show_menu {
echo "Изберете опция:"
echo "1. Показване на публична информация за IP"
echo "2. Показване на частна информация за IP"
echo "3. Показване на цялата информация (публична и частна)"
echo "4. Изход"
}
# Основен цикъл
while true; do
show_menu
read -p "Вашият избор (1/2/3/4): " choice
case $choice in
1)
show_public_ip_info
;;
2)
show_private_ip_info
;;
3)
show_public_ip_info
show_private_ip_info
;;
4)
echo "Изход."
exit 0
;;
*)
echo "Невалиден избор. Моля, опитайте отново."
;;
esac
# Опция за повторение или изход
read -p "Желаете ли да направите нов избор? (да/не): " again
if [[ "$again" != "да" ]]; then
echo "Изход."
exit 0
fi
done
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut