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 sangat baik untuk saya, sebab itulah saya membaginya 🙂

salam


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   ezitoc kata

    Sempurna! Sungguh menarik. Terima kasih banyak-banyak.

    1.    KZKG ^ Gaara kata

      Terima kasih kepada anda kerana berhenti dan memberi komen

  2.   taregon kata

    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 🙂

    1.    KZKG ^ Gaara kata

      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!

      1.    taregon kata

        hehe, jika itu benar, menakutkan untuk memikirkannya, tetapi pendekatannya ada 😛

  3.   alexander mora kata

    Ia sudah berfungsi, jalankan skrip ./script dan bukan sh.

    1.    KZKG ^ Gaara kata

      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 😉

  4.   anathur kata

    Hai, terima kasih atas bantuan anda, sangat membantu.