在Bash中检查它是否是正确的IP(用于验证IP的功能)

这是在某些情况下可以帮助我们的另一个技巧。 我做这个帖子更多是为了提醒,因为我知道在某个时候我将再次需要这个哈哈哈。

当我们在做一些脚本时 打坏,并且用户必须输入一个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 / sh的 这是行不通的,我花了整整2天的时间进行战斗和抗议,因为该功能无法正常工作,而且 sh 而不是bash哈哈哈。

除此之外,没有其他要添加的功能 蟒蛇, Perl的 和其他语言...实际上,我向您展示的这不是验证IP中IP的唯一方法 打坏,但是对我来说一直很好,这就是为什么我分享它🙂

问候


8条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   依齐托克

    完善! 很有意思。 非常感谢。

    1.    KZKG ^ Gaara

      感谢您的光临和评论😀

  2.   塔里贡

    大! 现在,让我们尝试改编“如果[[$ ip =〜^ [0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \ 。[0-9] {1,3}]];“ 这样它就可以检测到ipv6的拼写错误...暴力... o_0十六进制及其128位元中必须放置的混乱。

    当然,这是我提出的一个假设案例

    1.    KZKG ^ Gaara

      对于IPv6 ...该死,我什至不开玩笑...让它离开...如果我什至不甚了解IPv6的含义(操作),我什至不尝试验证IP LOL!

      1.    塔里贡

        呵呵,如果是真的,想一想就很恐怖,但是这种方法存在exists

  3.   亚历杭德罗·莫拉(Alejandro Mora)

    它已经可以工作,只需运行./script而不是sh脚本。

    1.    KZKG ^ Gaara

      是的,当然,如果您使用sh脚本,它将尝试使用sh解释它...您将必须执行bash脚本以使其与./script.sh相同

  4.   阿纳瑟尔

    嗨,谢谢您的帮助,它非常有帮助。