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

Python中能否伪装PC/操作系统名称,使主机名获取接口返回自定义值

答案

可以实现你要的伪装效果,针对你列出的三个Python接口,有对应的方法让其返回自定义的主机名,不会修改系统真实的PC名称,具体实现如下:


实现方案

1. 覆盖环境变量适配 os.environ['COMPUTERNAME']

这个接口直接读取当前进程的环境变量,仅需修改对应环境变量的值即可:

import os
# 替换为你要伪装的PC名
FAKE_PC_NAME = "CustomFakeName"
# Windows系统下修改COMPUTERNAME变量
os.environ['COMPUTERNAME'] = FAKE_PC_NAME
# Linux/macOS系统下对应修改HOSTNAME变量,若程序明确读取COMPUTERNAME可额外新增该变量
os.environ['HOSTNAME'] = FAKE_PC_NAME

修改仅对当前进程生效,不会影响系统全局环境变量。


2. 猴子补丁适配 socket.gethostname() 和 platform.node()

platform.node() 底层绝大多数场景依赖 socket.gethostname() 实现,保险起见可以同时覆盖两个方法:

import socket
import platform

FAKE_PC_NAME = "CustomFakeName"

# 备份原有方法(需要恢复时可调用)
original_gethostname = socket.gethostname
original_platform_node = platform.node

# 覆盖为返回自定义名称的方法
socket.gethostname = lambda: FAKE_PC_NAME
platform.node = lambda: FAKE_PC_NAME

效果验证

修改完成后调用你列出的三个接口,返回值都会变为你预设的伪装名称:

print(platform.node()) # 输出 CustomFakeName
print(socket.gethostname()) # 输出 CustomFakeName
print(os.environ['COMPUTERNAME']) # Windows下输出 CustomFakeName

注意事项

  • 所有修改仅在当前Python进程内生效,不会修改系统真实主机名,也不会影响其他程序的运行
  • 如果你需要在不修改目标Python程序源码的情况下实现欺骗,可以将上述补丁代码写入Python的sitecustomize.py启动脚本,Python进程启动时会自动执行补丁覆盖
  • 该方案仅适配你列出的三个标准库接口,如果目标程序直接调用系统原生API获取主机名,需要额外Hook对应的系统API才能实现欺骗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:06:04