使用shell脚本完成 1. 随机生成 100个三字符域名 (26个字母+ 数字) 并且存入文件 2. 读取上一个文件 检测域名是否真实存在,并且输出ip列表 写入文件 3. 读取上一个文件 检测每个ip 的访问延时,排序输出
时间: 2024-04-09 07:33:14 浏览: 172
shell编程案例 最新版.docx
以下是一个使用Shell脚本完成你提到的任务的示例:
```bash
#!/bin/bash
# 1. 随机生成100个三字符域名并存入文件
domain_file="domain_list.txt"
ip_file="ip_list.txt"
generate_domain() {
# 生成随机三字符域名
domain=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 3 | head -n 1)
echo "$domain"
}
# 清空文件
> "$domain_file"
# 生成100个随机域名并存入文件
for ((i=1; i<=100; i++)); do
domain=$(generate_domain)
echo "$domain" >> "$domain_file"
done
# 2. 检测域名是否真实存在,并输出IP列表到文件
> "$ip_file"
while read -r domain; do
ip=$(dig +short "$domain")
if [ -n "$ip" ]; then
echo "$domain: $ip"
echo "$ip" >> "$ip_file"
else
echo "$domain: Domain not found"
fi
done < "$domain_file"
# 3. 检测每个IP的访问延时,排序输出
ping_result_file="ping_result.txt"
> "$ping_result_file"
while read -r ip; do
ping_result=$(ping -c 5 -q "$ip" | awk -F'/' 'END {print $5}')
if [ -n "$ping_result" ]; then
echo "IP: $ip, Delay: $ping_result ms"
echo "IP: $ip, Delay: $ping_result ms" >> "$ping_result_file"
else
echo "IP: $ip, Delay: Failed to ping"
fi
done < "$ip_file"
# 对延时进行排序输出
sort -t: -k2 -n "$ping_result_file"
```
将以上代码保存为一个Shell脚本文件(例如`script.sh`),在终端中运行`bash script.sh`即可执行。执行完毕后,会生成`domain_list.txt`、`ip_list.txt`和`ping_result.txt`三个文件,分别包含生成的域名、域名对应的IP列表和IP的访问延时结果。
阅读全文