将 stdin 传递到 Unix 主机或 dig 命令
假设我有一个 IP 列表进入我正在跟踪的日志中:
1.1.1.1
1.1.1.2
1.1.1.3
我想轻松地将它们解析为主机名。 我希望能够
tail -f access.log | host -
Which 失败,因为主机无法以这种方式理解来自 stdin 的输入。 无需编写静态文件或回退到 perl/python/等的最简单方法是什么?
Let's say I have a list of IPs coming into a log that I'm tailing:
1.1.1.1
1.1.1.2
1.1.1.3
I'd like to easily resolve them to host names. I'd like to be able to
tail -f access.log | host -
Which fails as host doesn't understand input from stdin in this way. What's the easiest way to do with without having to write a static file or fallback to perl/python/etc.?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 bash 中,您可以执行以下操作:
示例程序:
这样您只需调用“dig”一次。
In bash You can do:
Example program:
This way You only invoke 'dig' once.
您还可以使用 read 内置函数:
You could also use the read builtin:
使用 xargs -l :
Use
xargs -l
:如果需要,在下面的命令中,将
cat
替换为tail -f
等。使用
host
:使用
dig
:请注意
-i
选项>xargs 隐含-L 1
选项。要首先获取主机的 IP,请参阅此答案。
In the commands below, replace
cat
withtail -f
, etc. if needed.Using
host
:Using
dig
:Note that the
-i
option toxargs
implies the-L 1
option.To first get the IPs of one's host, see this answer.