结合 netstat 命令和 geoiplookup

Posted

技术标签:

【中文标题】结合 netstat 命令和 geoiplookup【英文标题】:Combine netstat command and geoiplookup 【发布时间】:2014-09-07 21:55:15 【问题描述】:

如何组合以下命令:

netstat -atun | awk 'print $ 5' | cut-d: f1 | -e sed '/ ^ $ / d' | sort | uniq-c | sort-n 

和“geoiplookup”列出类似“Con.Number, IP, Country”的内容

我正在使用这个库: http://kbeezie.com/geoiplookup-command-line/

感谢您的帮助! 最好的问候

【问题讨论】:

我认为您的蛮力关键字是导致这是一个负面问题的原因。您只是想确定您的流量来自哪些国家/地区正确? 【参考方案1】:

您应该可以通过以下方式获得它:

netstat -an -f inet | awk 'print $ 5' | sed -e '/^\*\.\*$/d' | awk 'sub(/\.[0-9]+$/,"")' | uniq | sort -n | xargs -n 1 geoiplookup   | sort | uniq -c | sort -n | sed -r 's/ GeoIP Country Edition://g'

netstat -an -f inet - 显示所有网络相关的数据结构,网络地址为数字,并拉取 inet 地址族

awk 'print $ 5' - 接受该输入并仅显示带有先前端口的 IP 地址。

sed -e '/^\*\.\*$/d' - 去掉所有 .

awk 'sub(/\.[0-9]+$/,"")' - 去掉端口号,只保留 IP 地址

uniq - 去掉重复的ips

sort -n - 执行数字排序(非必需)

xargs -n 1 geoiplookup - 接受第一个输入并执行国家/地区的查找

sort - 根据国家/地区名称排序

uniq -c - 将国家名称与计数分组

sort -n - 根据计数组织国家/地区

sed -r 's/ GeoIP Country Edition://g' - 去掉“GeoIP Country Edition:”的措辞

这与蛮力无关,只是告诉您连接来自哪个国家/地区。

【讨论】:

该命令对我来说无法正常工作。你测试过吗?感谢您的支持! 这是最好的版本,但将 ip 换行:netstat -atun | awk '$5 ~ /^[1-9]/ 打印 $5' |切-d:-f1 | sed -e '/^$/d' | sed -e '/127.0.0.1/d' |排序 |唯一的-c |排序-n | awk 'print "Ligacoes: "$1" IP:"$2" - Pais:"; $pais=system("geoiplookup "$2)' 我在 MacOS 上对其进行了测试,但没有将其加载到我的任何其他盒子中。是的,我想知道你为什么不保留 IP?

以上是关于结合 netstat 命令和 geoiplookup的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu终端命令--查看端口占用及关闭

linux使用啥命令查看端口 ?

查看进程-查看端口占用-杀进程

Ubuntu终端命令--查看端口占用及关闭

Ubuntu查看端口占用及关闭

Ubuntu 14.04 查看指定端口的服务