Bash에서 올바른 IP인지 확인 (IP 유효성 검사 기능)

이것은 특정 상황에서 우리를 도울 수있는 또 다른 팁입니다. 이 게시물을 다시 알림으로 더 많이 작성합니다. 왜냐하면 언젠가 다시 필요하다는 것을 알고 있기 때문입니다. hahaha.

우리가 스크립트를 할 때 세게 때리다, 그리고 사용자는 IP 주소를 입력해야합니다. 나중에 우리 (스크립트)가 해당 IP 주소를 사용하여 작업을 수행 할 수 있도록 모든 것이 잘못 될 수있는 부분을 알고 있습니까? ... 사용자가 IP를 입력하지 않고, 말도 안되는 또는 불완전한 IP 등을 넣는 것, 프로그램하는 사람들은 내가 의미하는 바를 알고 있습니다. 가장 터무니없는 일도 일어날 것이라고 생각하도록 프로그래밍해야하기 때문입니다. O_O.

이러한 상황을 정확히 피하기 위해 사용자가 입력 한 데이터가 실제로 IP인지 여부를 확인하는 IP 유효성 검사 기능이나 방법이 있습니다.

여기에 남겨 둡니다.

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
}

사용자가 "무언가"를 입력하면 그 무언가가 변수의 값이됩니다. 불안한 ... 코드는 다음과 같습니다.
echo "   Inserte lo que desea comprobar si es una IP."
read "ipdudosa"

그리고 이제 우리는 불안한 위의 기능으로 실제로 IP인지 아닌지 확인합니다. IP이면 그렇게 말하고 그렇지 않으면 IP가 아님을 알려줍니다.

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

여기에 전체 스크립트를 남깁니다.

IP 유효성 검사 기능 (예)

처음에는 다음과 같이 선언합니다. #! / bin / bash ...두면 #! / bin / sh의 이것은 작동하지 않을 것입니다. 나는 기능이 나를 위해 작동하지 않았기 때문에 거의 이틀 동안 거의 완전한 싸움과 항의를 보냈습니다. sh bash hahaha 대신.

추가 할 사항이 없습니다. 이에 대한 기능이 있습니다. Python, 및 기타 언어 ... 사실, 제가 보여 드리는이 언어가 IP를 검증하는 유일한 방법은 아닙니다. 세게 때리다, 그러나 그것은 나에게 매우 좋았 기 때문에 내가 그것을 공유하는 이유입니다 🙂

안부


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   이지톡

    완전한! 매우 흥미로운. 감사합니다.

    1.    KZKG ^ 가아라

      들러 주셔서 감사합니다 😀

  2.   타레 곤

    큰! 이제 "if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \ . [0-9] {1,3}]]; " 그래서 ipv6의 철자가 틀렸을 때 감지합니다. 폭력적입니다 ... o_0 HEXadecimal과 128 비트를 넣어야하는 엉망진창입니다.

    물론 이것은 제가 제기 한 가상의 경우입니다 🙂

    1.    KZKG ^ 가아라

      IPv6에 ... 젠장, 농담도 안 해요 ... 놔두세요 ... IPv6이 무엇인지 (동작) 잘 이해하지 못한다면, IP 유효성 검사도 시도하지 않습니다 LOL!

      1.    타레 곤

        헤헤, 그것이 사실이라면 그것에 대해 생각하는 것은 끔찍하지만 접근 방식은 존재합니다 😛

  3.   알레한드로 모라

    이미 작동하고 sh 스크립트가 아닌 ./script를 실행하십시오.

    1.    KZKG ^ 가아라

      예, 물론 sh 스크립트를 수행하면 sh로 해석하려고 시도합니다 ... bash 스크립트를 수행하여 ./script.sh와 동일하게 만들어야합니다.

  4.   아나 투르

    안녕하세요, 도움을 주셔서 감사합니다. 매우 도움이되었습니다.