首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将IP地址列表重定向到命令行函数?

如何将IP地址列表重定向到命令行函数?
EN

Stack Overflow用户
提问于 2022-03-02 01:22:24
回答 4查看 130关注 0票数 1

我想看看有哪些国家想要访问我的VPS。我安装了一个名为"goiplookup“的工具,它是从另一项名为"geoiplookup”的工作中获得的。如果我在命令行输入此命令:

代码语言:javascript
复制
goiplookup 8.8.8.8

它返回以下内容:

美国,美国

因此,我想出了如何通过以下方法获取试图访问我的服务器的IP列表:

代码语言:javascript
复制
sudo grep "disconnect" /var/log/auth.log | grep -v COMMAND | awk '{print $9}'

它给出了一长串这样的IP:

代码语言:javascript
复制
1.1.1.1
2.2.2.2
3.3.3.3

我不知道如何让这个IP列表被"goiplookup“工具处理。我试过这个:

代码语言:javascript
复制
sudo grep "disconnect" /var/log/auth.log | grep -v COMMAND | awk '{print $9}' | goiplookup

但这不起作用。我也不走运地试了一下:

代码语言:javascript
复制
sudo grep "disconnect" /var/log/auth.log | grep -v COMMAND | awk '{print $9}' | xargs -0 goiplookup
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2022-03-02 01:40:30

试试这个:

代码语言:javascript
复制
sudo grep "disconnect" /var/log/auth.log | grep -v COMMAND | awk '{print $9}' | sort | uniq | xargs -n 1 goiplookup

  • I添加了| sort | uniq,以确保每个IP只出现一次

  • xargs -n 1,这样每个找到的IP都是由| sort | uniq处理的。
票数 1
EN

Stack Overflow用户

发布于 2022-03-02 01:56:48

我会把它放到一个文件中,并创建一个小的实用程序来解析它:

代码语言:javascript
复制
sudo grep "disconnect" /var/log/auth.log | grep -v COMMAND | awk '{print $9}' | sort -u > ./file.txt

cat ./file.txt | while read -r line; do
      temp$(echo $line)

      goiplookup $temp
done

这将一次读取文件一行,并对每个IP执行goiplookup。

票数 1
EN

Stack Overflow用户

发布于 2022-03-02 02:30:25

代码语言:javascript
复制
sudo grep disconnect /var/log/auth.log | awk '!/COMMAND/ && !seen[$0]++ {system("geoiplookup \""$9"\""}

  • 注意到geoiplookup每次调用只允许一个IP。

  • 整个工作可以在awk中完成,但使用grep可以让其他部分非特权地运行。

!/(^|[^[:alnum:]_])COMMAND($|[^[:alnum:]_])/.

  • 考虑grep -w (匹配完整单词)是否合适,在awk中,您可以使用grep -w做类似的事情。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71316427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档