如何告诉 tcpdump 不要在输出中包含端口号?目前它包括解析后的 IP + 解析后的端口。我只需要解析后的 IP 地址(主机名)
答案1
您只是想要一个 IP 地址列表吗?
如果是,这将提取 IP 地址
sudo tcpdump -n | cut -d ' ' -f 5 | awk -F. '{ if (NF == 2) { print $1 } else { print $1 FS $2 FS $3 FS $4 }}'
这将从 IP 地址中提取
sudo tcpdump -n | cut -d ' ' -f 3 | awk -F. '{ if (NF == 2) { print $1 } else { print $1 FS $2 FS $3 FS $4 }}'
IPv6 安全。
如果你真的只想要端口之外的所有内容,那么这个就可以了(需要 gawk)
sudo tcpdump | gawk '{
split($3, from, ".");
$3 = from[1]
for (i=2; i<length(from); i++) {
$3 = $3 "." from[i]
}
split($5, to, ".");
$5 = to[1]
for (i=2; i<length(to); i++) {
$5 = $5 "." to[i]
}
print
}'