用python写一个脚本,将TXT文件里面的www网址,解析IP地址,输出结果为txt文件
时间: 2024-03-12 12:44:55 浏览: 19
好的,以下是一个Python脚本,可以读取一个txt文件中的网址,解析其对应的IP地址,并将结果输出到另一个txt文件中。
```python
import re
import socket
# 定义输入和输出的文件名
input_file = 'urls.txt'
output_file = 'ips.txt'
# 读取输入文件中的所有内容
with open(input_file, 'r') as f:
content = f.read()
# 使用正则表达式从内容中提取所有的www网址
urls = re.findall(r'www\.[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}', content)
# 使用 socket 模块查询每个网址对应的 IP 地址,并将结果写入输出文件中
with open(output_file, 'w') as f:
for url in urls:
try:
ip = socket.gethostbyname(url)
f.write(f'{url} -> {ip}\n')
except socket.gaierror:
f.write(f'{url} -> 解析失败\n')
# 输出解析结果
print(f'解析完成,共找到 {len(urls)} 个网址,已写入到 {output_file} 文件中。')
```
这个脚本做了以下几件事情:
1. 定义了输入和输出的文件名,你可以根据实际情况修改为你自己的文件名。
2. 读取输入文件 `urls.txt` 中的所有内容。
3. 使用正则表达式从内容中提取所有的 `www.` 开头的网址。
4. 对于每个网址,使用 `socket.gethostbyname` 函数查询对应的IP地址,并将结果写入输出文件 `ips.txt` 中。
5. 在命令行中输出解析结果,包括找到的网址数量和输出文件名。
注意:这个脚本假设输入文件中的每个网址都以 `www.` 开头,并且不包含任何空格或换行符。如果你的输入文件中包含了一些格式不规范的网址,这个脚本可能会出错。另外,这个脚本可能需要一些时间来解析所有的网址,具体时间取决于输入文件中包含的网址数量。