这是因为 whois 有新版本吗,还是我应该尝试使用 matriz 进行 ipv6(ipv4 是否太旧?)

这是因为 whois 有新版本吗,还是我应该尝试使用 matriz 进行 ipv6(ipv4 是否太旧?)

这是关于 2013 年的一些 Ubuntu 论坛用户和 askubuntu 用户与我一起编写的一个旧脚本。该脚本是:

#!/bin/bash
awk '{
    for (i = 1; i <= NF; i++)
        if ($i ~ /^SRC=/)
            print substr($i, 5)
}' /var/log/syslog | sort -u | while read ip; 
do
    printf ' INVALID STATE ' && printf ' =.|=.|=.|= %n =.|=.|=.|=\n ' | "$ip";
    whois "$ip" >> log-002.txt;
done

我是否应该在变量 ip 中放置一个矩阵来生成可扫描的 ipv6 地址?或者这是由于 whois 的新版本?对此脚本的更正将获得奖励。

显然,提供商 (unitymedia) 安装了新的防火墙,导致 whois 查询无法进行。我应该等待 whois 更新吗?或者这个问题可以解决吗?

该脚本的运行结果如下:

INVALID STATE ./pitbull-001.sh: Zeile 8: 2a02:0908:fd60:9200:b196:36be:5aa1:b60b: command not found INVALID STATE ./pitbull-001.sh: Zeile 8: 2a02:0908:fd60:9200:ba70:f4ff:fef3:2df3: command not found INVALID STATE ./pitbull-001.sh: Zeile 8: fe80:0000:0000:0000:0a95:2aff:fe7a:bca7: command not found INVALID STATE ./pitbull-001.sh: Zeile 8: fe80:0000:0000:0000:ba70:f4ff:fef3:2df3: command not found

但是当在命令行中明确给出 ipv6 地址时,whois 确实有效:

查找 2a02:0908:fd60:9200:b196:36be:5aa1:b60b:

看起来好像 whois 数据库部分受损了,或者好像有人禁止查询?

不同之处在于,在主页上进行查询时http://whois.net在查询字段中输入 ip 号码后,结果与在您的机器上本地进行 whois 查询时的结果不同。

如果此帖子的文本不合适,请将其调整为正确的英语。我的语法与您的语法不同。:-)

答案1

我不太确定您期望什么输出(如果清楚了,我会更新这个答案),但错误消息是由于第 8 行的输出被管道传输到而导致的printf"$ip"该输出被解释为命令。

以下脚本不会出现错误,但我不确定这是否是您想要的输出:

#!/bin/bash
awk '{
    for (i = 1; i <= NF; i++)
        if ($i ~ /^SRC=/)
            print substr($i, 5)
}' /var/log/syslog | sort -u | while read ip; 
do
    printf ' INVALID STATE ' && echo "$ip";
    whois "$ip" >> log-002.txt;
done

输出将附加到log-002.txt当前目录中的文件(就像它已经包含在原始脚本中一样)。

相关内容