2

我是 bash 脚本的新手,正在尝试从 whois 结果中解析出信息,特别是 orgname 和 city 字段。将结果保存在字符串中然后解析字符串以获取相关信息的正确方法是什么?像:

    RESULT=whois <ip>
    # parse RESULT

任何帮助将不胜感激。

4

2 回答 2

3

可悲的是,whois输出似乎是供人类而非机器阅读的。它的格式取决于您对哪个根域感兴趣。例如,whois uio.no返回类似

NORID Handle...............: UIO2O-NORID
Type.......................: organization
Name.......................: UNIVERSITETET I OSLO
Id Type....................: organization_number
Id Number..................: 971035854
Registrar Handle...........: REG2-NORID
Post Address...............: Postboks 1059, Blindern

同时whois tasvideos.org产生

Registrant ID:ACTR120531657
Registrant Name:Andres Delikat
Registrant Organization:tasvideos.org
Registrant Street1:5505G Creek Ridge Ln
Registrant Street2:
Registrant Street3:
Registrant City:Raleigh

这只是为了表明解析这些内容将取决于您正在查看的内容,并且我提供的解决方案并非在所有情况下都有效。但提取此信息的最简单方法是调用awk并保留其输出。对于您可能想要的“.org”案例,它将是这样的:

info=$(whois $ip)
org=$(echo "$info" | awk -F : '$1=="Registrant Organization"{print $2}')
city=$(echo "$info" | awk -F : '$1=="Registrant City"{print $2}')
于 2012-11-05T19:22:28.670 回答
0

请参阅此问题: 如何将变量设置为 Bash 中命令的输出?

cmd="yourcommand"
string=$($cmd)
echo $string
于 2012-11-05T19:00:40.370 回答