需要从 nslookup 输出中选择一个 ip

需要从 nslookup 输出中选择一个 ip

尝试创建脚本,我可以从 nslookup IP 中选择一个 ip 并分配给变量。

需要指导。提前致谢。

 nslookup yahoo.com | grep Address
Address:        192.168.1.1#53
Address: 98.137.11.163
Address: 74.6.231.20
Address: 98.137.11.164
Address: 74.6.231.21
Address: 74.6.143.26
Address: 74.6.143.25
Address: 2001:4998:24:120d::1:1
Address: 2001:4998:44:3507::8000
Address: 2001:4998:124:1507::f001
Address: 2001:4998:24:120d::1:0
Address: 2001:4998:124:1507::f000
Address: 2001:4998:44:3507::8001

答案1

我认为dig在脚本中使用更容易。要获取地址,您可以使用dig +short yahoo.com.要获得单行,请使用此dig +short yahoo.com | head -n 1.

答案2

又快又脏,但有效:

  • Pipenslookup的输出grep带有-A1参数(返回匹配的行加一);
  • 将此输出通过管道传输以tail -n1仅获取最后一行;
  • sed”你的方法是删除“地址:”部分并仅获取IP。

例子:

$ nslookup google.com | grep -A1 Name | tail -n1
Address: 2800:3f0:4004:805::200e

如果您只需要 IPv4,请确保包含-query=A以下参数nslookup

$ nslookup -query=A google.com | grep -A1 Name | tail -n1 | sed 's/Address: //'
216.58.222.110

相关内容