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 sangat baik untuk saya, sebab itulah saya membaginya 🙂
salam
Sempurna! Sungguh menarik. Terima kasih banyak-banyak.
Terima kasih kepada anda kerana berhenti dan memberi komen
Hebat! sekarang mari kita cuba menyesuaikan ini “if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " sehingga ia dapat mengesan ketika ipv6 ditulis dengan teruk ... ganas ... o_0 kekacauan yang akan meletakkan HEXadecimal dan 128bitsnya.
Pasti, ini adalah kes hipotesis yang saya bangkitkan 🙂
Untuk IPv6 ... sial, saya bahkan tidak bergurau ... melepaskannya ... jika saya tidak faham dengan baik apa itu IPv6 (operasi), saya bahkan tidak cuba mengesahkan IP LOL!
hehe, jika itu benar, menakutkan untuk memikirkannya, tetapi pendekatannya ada 😛
Ia sudah berfungsi, jalankan skrip ./script dan bukan sh.
Ya tentu saja, jika anda melakukan skrip sh, ia akan cuba menafsirkannya dengan sh ... anda harus melakukan skrip bash untuk membuatnya sama seperti ./script.sh 😉
Hai, terima kasih atas bantuan anda, sangat membantu.