【发布时间】:2019-03-07 12:53:16
【问题描述】:
我正在创建一个小脚本来读取包含域列表的文件的内容。然后通过 dig +short 对域进行管道传输以提取其 IP 地址,然后通过 geoiplookup 对每个 IP 进行管道传输以获取其原籍县,并使用 AWK 以以下格式显示它们:
IP Address , Country
IP Address , Country
IP Address , Country
IP Address , Country
IP Address , Country
for domain in $(cat "$1"); do dig +short $domain | tr '\n' ' ' >> Blacklist.csv | geoiplookup $domain | awk 'NR==1{print ","$5,$6,$7,$8}' >> Blacklist.csv ; done
现在,我遇到了显示在底部的第一个 IP 地址的问题,如下所示:
, Country
IP Address , Country
IP Address , Country
IP Address , Country
IP Address , Country
IP Address
关于如何整理我的演示文稿有什么想法吗?
================================================ =========================
编辑:
Output CSV - 如您所见,单元格 A1 中的 IP 地址已错误地放置在单元格 A5 中
编辑 2:示例 输入文件 - 包含域列表的文本文件:
helloworld.com
rubyonrails.org
sublimetext.com
gnu.org
DIG 输出:
ryan@ubuntu:~/Desktop$ for domain in $(cat stackdemo.txt); do dig +short $domain ; done
69.25.240.212
185.199.108.153
45.55.41.223
209.51.188.148
最终组合输出:
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
209.51.188.148
================================================ =========================
非期望输出
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
209.51.188.148
期望的输出
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
209.51.188.148 ,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
【问题讨论】:
-
如果我理解正确,您想为 Input_file 中的所有 ip 运行
dig命令。如果是这种情况,那么您能否在您的帖子中提及 input_file(带有 ips)的虚拟样本和dig输出的虚拟样本(对于 1 个 IP 和最终总输出),然后让我们知道? -
我不明白
... | tr ... >> Blacklist.csv | geoiplookup。>>和|的组合真的是你想要的吗? -
请在您的帖子中发布您的示例(作为文本),请勿以图片或链接的形式发布它们,请@NigerianWizard
-
@RavinderSingh13 发布示例
-
@NigerianWizard,好的,让我重新措辞一下。您有您正在传递或想要传递给
dig以获取其 ips 的域列表。一旦你得到那些你把它们传递给geoiplookup;您在重新安排其输出时面临哪些问题,对吗?如果是,那么您可以简单地告诉我们NON desired output然后Desired output,因为您的帖子中仍然不清楚。因为在您的预期输出中缺少某个 ip 或某个国家/地区所以不清楚,请提供更多详细信息。