You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shell脚本查询IP Whois信息并以表格形式输出

改造Shell脚本输出IP分析的Markdown表格

我帮你调整脚本,让它把IP的whois组织信息和PTR主机名整理成清晰的Markdown表格,这样输出的结果更易读和归档。

最终脚本实现

#!/bin/bash

# 打印Markdown表格表头
echo "| IP Address       | Organization/Description | Hostname               |"
echo "|------------------|--------------------------|------------------------|"

# 循环读取输入文件中的每个IP
while read -r line; do
    # 跳过空行
    [[ -z "$line" ]] && continue

    # 获取组织/描述信息,优先取OrgName,没有则取descr,无结果显示N/A
    org_info=$(whois "$line" | awk '/^OrgName:|^descr:/ {sub(/^[^:]+: /, ""); print; exit}' || echo "N/A")
    
    # 获取PTR主机名,无结果显示N/A
    hostname=$(dig -x "$line" +short || echo "N/A")
    # 处理dig可能返回的空值
    [[ -z "$hostname" ]] && hostname="N/A"

    # 输出表格行,对齐格式(可以根据实际情况调整空格)
    printf "| %-16s | %-24s | %-22s |\n" "$line" "$org_info" "$hostname"
done < your_ip_list.txt

脚本说明

  1. 表格结构:先输出Markdown表格的表头和分隔线,确保格式符合标准。
  2. 空行处理:跳过输入文件中的空行,避免无效的IP处理。
  3. Whois信息提取:用awk精准匹配OrgName或descr字段,自动去除字段名只保留内容,找不到匹配项时显示N/A。
  4. PTR记录获取:用dig -x $line +short直接获取简洁的主机名结果,比你原来的grep组合更高效,空结果时也统一显示N/A。
  5. 格式化输出:用printf固定列宽,保证表格列对齐,让输出看起来更整齐。

使用方法

把你的IP列表保存为your_ip_list.txt(或者替换成你实际的文件名),给脚本加上执行权限后运行,就能直接得到可复制使用的Markdown表格了。

示例输出效果:

| IP Address       | Organization/Description | Hostname               |
|------------------|--------------------------|------------------------|
| 106.1.2.5        | CHINANET-BJ Beijing Province Network | 106.1.2.5.static.bjtelecom.net |
| 42.34.74.34      | ALIBABA-CN Alibaba (China) Technology Co., Ltd. | 42.34.74.34.static.alibabadns.com |
| 173.23.74.34     | CLOUDFLARENET Cloudflare, Inc. | 173.23.74.34.cloudflare.com |

内容的提问来源于stack exchange,提问作者ishaansinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:03:28