Copilotを利用して、以下のスクリプトを抽出です。
- netstat -tan |grep ポート番号 を実行
- ポート番号は変数で指定可能
- IPアドレス一覧と件数を表示
- 詳細を表示しますか? → yの場合、IPアドレスが割り当てられている国やホストをIPアドレスごとに表示する
- 自分がアクセスしていることを考慮して、表示しないIPアドレスは変数で定義できるものとする
#!/bin/bash
# 定義された除外するIPアドレス(スペースで区切って指定可能)
EXCLUDE_IP="IPアドレスを入力"
# 使用するポート番号(スペースで区切って指定可能)
PORT="80 443"
# netstatを使用して指定されたポートに関連するIPアドレスを抽出
IP_LIST=$(netstat -tan | grep ":$PORT" | awk '{print $5}' | cut -d':' -f1 | grep -vE "($EXCLUDE_IP)" | sort | uniq)
# IPアドレスの件数を表示
echo "IPアドレス一覧:"
echo "$IP_LIST"
echo "件数: $(echo "$IP_LIST" | wc -l)"
# ユーザーに詳細表示を尋ねる
read -p "詳細を表示しますか? (y/n): " DETAIL
if [ "$DETAIL" = "y" ]; then
for IP in $IP_LIST; do
# whoisコマンドを使用してIPアドレスの詳細を取得
echo "IPアドレス: $IP の詳細:"
whois $IP | grep -E 'Country|OrgName' || echo "情報が見つかりませんでした。"
echo "-----"
done
else
echo "詳細表示はスキップされました。"
fi
前提としてwhoisコマンドがインストールされていることが条件。
これによって、
- どこからアクセスしてくるのか
- ホストの詳細はあるのか
の確認が可能です。