python - Python脚本中的Netsh抛出语法错误
问题描述
我试图自动更改静态 IP 地址,但是 netsh 命令抛出此错误:The filename, directory name, or volume label syntax is incorrect.
语法应该是:netsh interface ip set address "Connection_name" static new_ip subnet_mask default_gateway
到目前为止,我已经进行了一些调试,很明显崩溃已经发生了os.system
,但除此之外我没有任何线索,似乎我正在使用确切的所需语法
import os
def change_ip(wifi_name):
info_dict = {}
info_keywords = ["IPv4 Address", "Subnet Mask", "Default Gateway"]
wifi_info = os.popen("ipconfig").read()
wifi_info = wifi_info.split("Wireless LAN adapter Wi-Fi:")[1]
wifi_info = wifi_info.split("Ethernet adapter Bluetooth Network Connection:")[0]
for data in wifi_info.split("\n"):
for keyword in info_keywords:
if keyword in data:
info_dict[keyword] = data.split(': ')[1]
base, var = info_dict["IPv4 Address"].split(".")[:-1], int(info_dict["IPv4 Address"].split(".")[-1])
if var == 225: var = 1
else: var += 1
base.append(str(var))
print(f"Old ip: {info_dict['IPv4 Address']}")
info_dict["IPv4 Address"] = ".".join(base)
os.system(f'netsh interface ipv4 set address "{wifi_name}" static {info_dict["IPv4 Address"]} {info_dict["Subnet Mask"]} {info_dict["Default Gateway"]}')
print(f"New ip: {info_dict['IPv4 Address']}")
print(info_dict)
change_ip(wifi_name = input("Name of network connection: "))
os.system("pause")
解决方案
推荐阅读
- javascript - 如何一个一个地上传多个文件?
- maven - 使用 Maven 构建 Docker 策略
- reactjs - 滚动视图内的 onPress 事件需要 React Native 两次点击
- c# - 如何从照片库中获取照片的路径
- reactjs - 如何在多个项目之间共享相同的组件?
- python - 拆分数据帧的行并将它们作为单独的行存储在同一数据帧中
- linux - 构建 Qemu - 未知目标名称“arm-softmmu”
- python - 如何解决在 Instagram 帖子上输入评论的问题
- react-native - 我无法在 React Native 中使用 createTokenWithCard() 创建条带令牌
- c++ - GCC 和 Clang 不同意 lambda 的 constexpr-ness?