【问题标题】:how to check if variable contains a valid ip address如何检查变量是否包含有效的 IP 地址
【发布时间】:2013-06-21 23:47:43
【问题描述】:

我正在编写一个 shell 脚本程序,其中我从用户那里获取 IP 地址或系统名称,谁能告诉我如何检查给定的 IP 地址或系统名称是否有效。我觉得ping不行,我试过了,还是出不来,有没有别的办法。

【问题讨论】:

标签: linux shell unix ip-address aix


【解决方案1】:

试试这个,希望能成功

#! /bin/sh

valid_ip()
{
  # Check if IP format is num.num.num.num / num between 0..255
  if [ "$(sipcalc $1 | grep ERR)" != "" ]; then
    echo "incorrect"
    return 1
  fi
  echo "correct"
  return 0
}

【讨论】:

  • +1 不知道 sipcalc 存在。但需要额外安装。
  • 但是如果用户提供服务器名而不是 IP 会怎样。我想同时检查
  • 这个检查只针对ip,不针对服务器名。
  • 有什么办法可以同时检查
  • 对于服务器名称,我们需要 ping 并解析输出。使用 $(ping -c 2 www.abc.com 2>&1| grep "% packet")
【解决方案2】:

我的第一个想法是使用“主机”

host 192.168.1.dog
Host 192.168.1.dog not found: 3(NXDOMAIN)

echo $?
1

host happy
happy.local has address 192.168.1.25

echo $?
0

host 192.168.1.25
25.1.168.192.in-addr.arpa domain name pointer Happy.local.

echo $?
0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 2012-05-24
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2019-10-26
    • 2012-11-28
    • 2017-10-30
    相关资源
    最近更新 更多