编写一个程序,生成一个大文件ips.txt,要求500行,每行随机为192.168.111.xx(0-15)的IP,读取ips.txt文件,统计这个文件中出现频率排前10的IP
时间: 2024-09-22 12:03:47 浏览: 29
vivado2018+IPs_vivado_vivado2018.3_licencevivado_vivado2018_viva
5星 · 资源好评率100%
首先,我们需要创建一个包含500行随机IP地址的大文件`ips.txt`。然后,我们将读取该文件并计算每个IP地址的出现次数。接下来,我们将按照频率对这些IP进行排序并输出前10个最常见的IP。
下面是步骤和相应的Python代码:
1. **生成`ips.txt`文件**:
```python
import random
import string
def generate_ips(num_lines):
file_content = []
for _ in range(num_lines):
ip = f'192.168.111.{random.randint(0, 15)}'
file_content.append(ip)
with open('ips.txt', 'w') as f:
f.write('\n'.join(file_content))
generate_ips(500)
```
2. **读取文件并计算IP频率**:
```python
from collections import Counter
def count_ip_frequencies():
with open('ips.txt', 'r') as f:
ip_lines = f.read().splitlines()
ip_counter = Counter(ip_lines)
return ip_counter.most_common(10)
top_10_ips, top_10_counts = count_ip_frequencies()
```
3. **输出结果**:
```python
for i, (ip, count) in enumerate(top_10_ips, start=1):
print(f"Rank {i}: IP - {ip}, Frequency - {count}")
# 输出出现频率最高的前10个IP及其对应的频率
```
运行这段代码后,你将在控制台上看到文件中出现频率最高的前10个IP及其对应的频率。
阅读全文