windows下修改ip地址的脚本

2024-01-28

我使用计算机通过以太网与硬件进行通信。为了与此设备通信,我将 IP 设置为 192 168 0 11,将子网掩码设置为 255 255 255 0,将 IPv4 的默认网关设置为 192 168 0 1。为了使用互联网,我通过控制面板选择“自动获取IP地址”。

我想要一个脚本,允许我快速选择一种或另一种以太网设置 - 硬件或互联网。

我主要用 python 编程,但也许有一个批处理文件解决方案。

Thanks,

巴里.


您可以使用PythonWMI模块 http://timgolden.me.uk/python/wmi/index.html为此(安装PyWin32 扩展 http://starship.python.net/crew/mhammond/win32/Downloads.html以及运行这些脚本之前的 WMI 模块)。以下是如何配置与硬件设备通信的方法:

import wmi

# Obtain network adaptors configurations
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)

# First network adaptor
nic = nic_configs[0]

# IP address, subnetmask and gateway values should be unicode objects
ip = u'192.168.0.11'
subnetmask = u'255.255.255.0'
gateway = u'192.168.0.1'

# Set IP address, subnetmask and default gateway
# Note: EnableStatic() and SetGateways() methods require *lists* of values to be passed
nic.EnableStatic(IPAddress=[ip],SubnetMask=[subnetmask])
nic.SetGateways(DefaultIPGateway=[gateway])

以下是如何恢复自动获取 IP 地址(通过 DHCP):

import wmi

# Obtain network adaptors configurations
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)

# First network adaptor
nic = nic_configs[0]

# Enable DHCP
nic.EnableDHCP()

注意:在生产脚本中,您应该检查返回的值启用静态() http://msdn.microsoft.com/en-us/library/aa390383%28v=VS.85%29.aspx, 设置网关() http://msdn.microsoft.com/en-us/library/aa393301%28v=VS.85%29.aspx and 启用 DHCP() http://msdn.microsoft.com/en-us/library/aa390378%28v=VS.85%29.aspx。 (“0”表示成功,“1”表示需要重新启动,其他值在方法名称链接到的 MSDN 页面上进行了描述。注意:对于 EnableStatic() 和 SetGateways(),错误代码以列表形式返回)。

有关 Win32NetworkAdapterConfiguration 类所有功能的完整信息也可以在 MSDN 上找到的 http://msdn.microsoft.com/en-us/library/aa394217%28VS.85%29.aspx.

注意:我使用 Python 2.7 对此进行了测试,但由于 PyWIn32 和 WMI 模块可用于 Python 3,我相信您应该能够通过删除字符串文字前面的“u”来使其适用于 Python 3。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows下修改ip地址的脚本 的相关文章

随机推荐

  • 使用 Python 的具有多个帐户的 YouTube 数据 API

    我正在开发一个应用程序 旨在帮助我的一个朋友更好地组织他的 YouTube 频道 他在不同的 Google 帐户上拥有多个频道 我正在用 Python 开发这个程序 目前我对 YouTube Data API 没有太多经验 我计划使用它 因
  • 如何确定哪些 Eclipse 插件对菜单和工具栏有贡献并停止它们

    我正在创建一个 RCP 应用程序 它使用许多第三方插件 其中一些插件提供了我不希望显示的菜单 菜单项和工具栏按钮 如何确定哪些插件正在提供这些菜单 菜单项和工具栏按钮 以及如何禁用它们这样做 检查菜单 工具栏贡献等的详细信息 通过包含插件来
  • decltype(auto) 与 auto&& 执行函数返回类型的通用处理

    使用时auto 处理返回左值的函数 int func int v 42 return v auto v func 治疗会有什么后果v作为参考而不是左值 这些后果是否证明使用decltype auto 代替auto 对函数的返回类型执行通用处
  • 手动向 Spring Security 提供引用 URL

    我们有一些购物车页面适用于访客和用户路径 我们希望允许用户在此过程中随时登录 但实际上并不想创建另一个登录页面 我希望我们可以简单地将用户重定向到现有登录并告诉 Spring Security 返回哪个 URL 我知道当会话超时和 或在没有
  • 为什么容器大小取决于绝对定位的子项?

    我正在尝试构建一个带有两个视频盒的类似 Skype 的界面 http jsfiddle net q9ER2 20 http jsfiddle net q9ER2 20
  • 创建一个可以在以后单击同一按钮时添加的可变数组?

    一般菜鸟问题 1 如何创建一个NSMutable数组在一个buttonClicked我可以在随后单击同一按钮时添加更多条目的操作吗 我似乎总是在每次点击时都从一个新数组开始 该数组只打印 1 个条目 这是一个按钮中最新的按钮标签 NSLog
  • 如何获取数组中元素的层次结构路径

    我总是想获得数组中元素的确切路径 数组示例 array a gt aaa b gt array bbb1 bbb2 gt array bbb3 bbb4 因此 为了到达 bbb4 我需要经过 b gt bbb2 gt bbb4 如何获取多维
  • 如何构造 LINQ to Entities 查询来直接加载子对象,而不是调用 Reference 属性或 Load()

    我是使用 LINQ to Entities 或实体框架 无论他们如何称呼它 的新手 我正在编写很多这样的代码 var item from InventoryItem item in db Inventory where item ID id
  • 如何使用 xsl-fo 和 apache fop 0.95 显示固定图像高度和宽度

    我正在尝试修复使用 fop 0 95 生成的 pdf 中图像的高度和宽度 这是用于它的代码
  • Nexus 6P 上硬件传感器的 Android 采样率变化

    我正在开发一个 Android 应用程序 用于研究 并且正在读取多个传感器数据 例如加速度计 陀螺仪 气压计等 所以我有 4 台 Nexus 6P 设备 全部配备最新版本工厂形象 https developers google com an
  • 到底是什么决定了 JavaScript 模块在 .html 中的执行顺序?

    我读到了首先加载最先出现的模块 https javascript info import export 这不是真的 在我回答这个问题之前 我了解到 首先执行没有导入的模块 叶模块 导入的模块只有在其导入的模块执行后才会执行 这让我能够解释这
  • 将 SQL STATISTICS TIME 和 IO 捕获到表中

    有没有办法捕捉STATISTICS IO and TIME在 T SQL 中 用于登录表 Sort of 与给出的统计数据相同SET STATISTICS TIME由查询统计 DMV 捕获 sys dm exec query stats h
  • 下一个更高/更低的 IEEE 双精度数

    我正在做高精度的科学计算 在寻找各种效果的最佳表示时 我不断想出想要获得下一个更高 或更低 可用双精度数的理由 本质上 我想要做的是将 1 添加到 double 的内部表示中的最低有效位 困难在于 IEEE 格式并不完全统一 如果要使用低级
  • 如何在反应传单中制作椭圆形?

    我想在反应传单中制作一个椭圆形 我已经检查过这个问题如何在react leaflet中制作一个椭圆形 https stackoverflow com questions 49089011 how can one make an ellips
  • Lombok 和 Jackson - 冲突/不明确的属性名称定义

    我收到一条警告消息 com fasterxml jackson databind JsonMappingException Conflicting ambiguous property name definitions implicit n
  • 使用随机森林的 AUC 基特征重要性

    我正在尝试使用随机森林和逻辑回归来预测二元变量 我的类别严重不平衡 Y 1 的大约 1 5 随机森林中的默认特征重要性技术基于分类准确性 错误率 这已被证明对于不平衡类来说是一个不好的衡量标准 请参阅here http www biomed
  • 为 mac ruby​​ 开发设置 .emacs 文件

    我在 Mac 上的 emacs 中加载 ruby 模式时遇到困难 emacs 文件位于 emacs 我已经向其中添加了几个命令 许多命令是从该站点粘贴的 但似乎没有一个被加载 有什么建议吗 我不确定文件是否未加载或者命令语法错误 我所需要的
  • 抛出“std::out_of_range”实例后调用终止

    我绝对是编程初学者 我在构建以下代码时遇到此错误 error terminate called after throwing an instance of std out of range what vector M range check
  • 发行说明,有什么用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • windows下修改ip地址的脚本

    我使用计算机通过以太网与硬件进行通信 为了与此设备通信 我将 IP 设置为 192 168 0 11 将子网掩码设置为 255 255 255 0 将 IPv4 的默认网关设置为 192 168 0 1 为了使用互联网 我通过控制面板选择