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

运行Python自动修改IP脚本出现Host name lookup failure错误如何解决?

报错原因排查

触发Host name lookup failure报错的核心是os.system('sudo ifconfig wlo1 ip')这行代码的语法完全错误:

  • ifconfig设置IP的标准语法为ifconfig <网卡名> <实际IP地址> netmask <子网掩码>,你代码里直接把字符串ip写死在了命令里,系统会把ip当成主机名尝试解析,自然会报查找失败的错误
  • 除此之外你的代码还有3个逻辑问题:
    • 生成的随机IP变量ip根本没有传入到系统命令中,你打印的IP和实际网卡配置完全无关
    • 用户输入的间隔时间sec、切换次数limit参数完全没有被使用,循环硬编码为执行4次、每次固定等待6秒
    • 没有校验IP合法性,随机生成的公网IP、保留段IP可能直接导致网卡断连
修复方案

修改后代码

import random
import time
import os

sec = int(input("输入IP切换间隔(单位:秒):"))
limit = int(input("输入IP切换总次数:"))
# 可根据实际网络环境修改子网掩码、网卡名
netmask = "255.255.255.0"
interface = "wlo1"

for _ in range(limit):
    # 生成私有网段IP,避免非法IP导致断连,可根据需要调整网段
    ip = f"192.168.1.{random.randint(2, 254)}"
    time.sleep(sec)
    os.system(f"sudo ifconfig {interface} down")
    # 修正后的设置IP命令,传入真实IP和子网掩码
    os.system(f"sudo ifconfig {interface} {ip} netmask {netmask}")
    os.system(f"sudo ifconfig {interface} up")
    print(f"当前已将网卡{interface}IP设置为:{ip}")

补充说明

  • 如果你的系统已经不预装ifconfig,可将设置IP的命令替换为iproute2版本:
    sudo ip addr add {ip}/{netmask} dev {interface}
    
  • 该脚本仅能修改网卡内网IP,无法修改运营商分配的公网IP,若需要切换公网IP需配合路由器重拨号操作
  • 手动设置IP前请确认你的网络网关、网段规则,避免设置的IP和网络环境冲突导致断连

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:27:04