[英]Whois search for public IP on a csv file using bash script
我有一份 csv 文件格式的公共 IP 地址列表的每日報告,我需要填寫公共 IP 的主機名。 主機名可以是 OrgId 或網絡名。
我需要執行 bash 腳本來自動執行 whois 搜索,而不是手動逐一搜索並將其填充到 csv 文件中。
示例:這是一長串公共 IP 地址的摘錄
Port,Type,S_Host,S_IP,Port,D_Host,D_IP,Port
2,tcp,N/A,8.8.8.8,2,N/A,47.246.57.232,8
3,tcp,N/A,47.246.57.232,2,N/A,217.17.81.9,3
我需要對第 4 列和第 7 列中的 IP 進行 whois 搜索,然后在字段 3 和 6 中填寫主機名。
所需的 output:
Port,Type,S_Host,S_IP,Port,D_Host,D_IP,Port
2,tcp,Google,8.8.8.8,2,Alibaba,47.246.57.232,8
3,tcp,Alibaba,47.246.57.232,2,MVTV,217.17.81.9,3
一個非常簡單的方法是讀取 IP 地址列表(即pubIP.lst
)並將其寫入一個新文件,但使用已解析的主機名(即hosts.lst
)。
#!/bin/bash
resolveHostname() {
# You may change or extend this function to your needs
dig -x "$1" +short
}
# Make sure there is no file with resolved hostnames
rm hosts.lst
while read LINE; # by line from a list
do
# Each Comma Separated Value (CSV) into a variable
PORT=$(echo "${LINE}" | cut -d "," -f 1)
TYPE=$(echo "${LINE}" | cut -d "," -f 2)
# SRC_HOST=$(echo "${LINE}" | cut -d "," -f 3)
SRC_IP=$(echo "${LINE}" | cut -d "," -f 4)
SRC_PORT=$(echo "${LINE}" | cut -d "," -f 5)
# DEST_HOST=$(echo "${LINE}" | cut -d "," -f 6)
DEST_IP=$(echo "${LINE}" | cut -d "," -f 7)
DEST_PORT=$(echo "${LINE}" | cut -d "," -f 8)
# And write it out the columns into a new file
# but for Col 3,6 with hostnames instead of IP
echo "${PORT},${TYPE},$(resolveHostname ${SRC_IP}),${SRC_IP},${SRC_PORT},$(resolveHostname ${DEST_IP}),${DEST_IP},${DEST_PORT}" >> hosts.lst
done < pubIP.lst
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.