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

Python新手求助:如何将域名解析的IP按指定格式写入文件

如何获取域名IP并按指定格式写入文件?

当然可以实现啦!作为刚接触Python的新手,你已经找对了方向——用socket模块获取IP,再结合文件操作就能完成需求。我来一步步给你讲清楚:

核心步骤拆解

  • 第一步:获取域名对应的IP
    你提到的socket.gethostbyname()完全正确,不过咱们可以加个异常处理,避免域名解析失败时程序直接崩溃,新手调试起来更省心。

  • 第二步:格式化为目标字符串
    拿到IP后,用Python的f-string(Python3.6+支持,写法最简洁)把它拼接成你要的add address=xxx list=st格式就行。

  • 第三步:写入文件
    用with语句打开文件(它会自动帮你关闭文件,比手动close()更安全),选择追加模式('a')或者覆盖模式('w'),记得加换行符\n,不然每次内容会挤在一行。


基础实现代码

先给你最简洁的版本,满足核心需求:

import socket

# 定义要解析的域名
target_domain = 'www.google.com'
# 获取IP地址
ip = socket.gethostbyname(target_domain)
# 格式化成目标字符串
result_line = f"add address={ip} list=st"
# 追加写入文件(如果要覆盖原有内容,把'a'改成'w'即可)
with open('ip_list.txt', 'a', encoding='utf-8') as file:
    file.write(result_line + '\n')

进阶版(带异常处理)

如果怕遇到域名解析失败、文件无法写入的情况,咱们加上异常捕获,让程序更健壮:

import socket

target_domain = 'www.google.com'
output_file = 'ip_list.txt'

try:
    # 获取IP
    ip = socket.gethostbyname(target_domain)
    # 格式化字符串
    result_line = f"add address={ip} list=st"
    # 写入文件
    with open(output_file, 'a', encoding='utf-8') as file:
        file.write(result_line + '\n')
    print(f"成功写入:{result_line}")
except socket.gaierror:
    print(f"出错啦:无法解析域名 {target_domain}")
except IOError as e:
    print(f"写入文件失败:{e}")

批量处理多个域名

如果需要一次性处理多个域名,把域名放进列表循环处理就行:

import socket

domains = ['www.google.com', 'www.github.com', 'www.baidu.com']
output_file = 'ip_list.txt'

for domain in domains:
    try:
        ip = socket.gethostbyname(domain)
        result_line = f"add address={ip} list=st"
        with open(output_file, 'a', encoding='utf-8') as file:
            file.write(result_line + '\n')
        print(f"✅ 处理完成:{domain} -> {ip}")
    except socket.gaierror:
        print(f"❌ 跳过:无法解析域名 {domain}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:23:32