簡體   English   中英

Whois 使用 bash 腳本在 csv 文件上搜索公共 IP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM