Periksa sama ada IP yang betul atau tidak di Bash (berfungsi untuk mengesahkan IP)

Ini adalah petua lain yang dapat membantu kita dalam situasi tertentu. Saya membuat catatan ini lebih banyak sebagai peringatan, kerana saya tahu bahawa saya akan memerlukannya pada satu ketika lagi hahaha.

Semasa kami melakukan beberapa skrip dalam menampar, dan pengguna mesti memasukkan alamat IP, untuk kemudian kami (skrip) melakukan sesuatu menggunakan alamat IP itu, adakah anda tahu di mana semuanya boleh salah? ... bahawa pengguna TIDAK memasukkan IP, untuk meletakkan omong kosong atau IP yang tidak lengkap atau semacamnya, mereka yang memprogram tahu apa yang saya maksudkan ... kerana mesti diprogramkan berfikir bahawa bahkan yang paling tidak masuk akal akan berlaku O_O.

Tepat untuk menghindari situasi ini, ada fungsi atau metode untuk mengesahkan IP, yaitu untuk memeriksa apakah data yang dimasukkan pengguna sebenarnya adalah IP atau tidak.

Di sini saya tinggalkan mereka:

function validar_ip()
{
local  ip=$ipdudosa
local  stat=1
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255  && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] stat=$?
fi
return $stat
}

Apabila pengguna memasukkan "sesuatu", sesuatu itu akan menjadi nilai pemboleh ubah ragu-ragu ... kodnya adalah:
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

Dan sekarang kami akan menunjukkan untuk mengesahkan kandungan atau nilai ragu-ragu dengan fungsi di atas, dan ini akan memeriksa sama ada ia sebenarnya IP atau tidak. Sekiranya ia adalah IP, ia akan mengatakannya, jika tidak, ia akan memberitahu kita bahawa BUKAN IP:

if validar_ip ipdudosa;
then echo "Sí, es una IP correcta :D";
else
echo "No, eso NO es una IP";
fi

Saya meninggalkan skrip lengkap di sini:

Fungsi untuk mengesahkan IP (contoh)

Baiklah pada awalnya saya menyatakan bahawa ia: #! / Bin / Bash ... jika mereka meletakkan #! / Bin / sh Ini tidak akan berjaya, saya menghabiskan hampir 2 hari penuh berjuang dan memprotes kerana fungsinya tidak berfungsi, dan itulah yang saya lakukan sh bukannya bash hahaha.

Tidak ada lagi yang perlu ditambahkan, terdapat fungsi untuk ini Python, Perl dan bahasa lain ... sebenarnya, ini yang saya tunjukkan bukan satu-satunya cara untuk mengesahkan IP di menampar, tetapi ia telah menjadi sangat baik untuk saya, itulah sebabnya saya berkongsinya 

salam