modify network adapter configuration parameters

本博客介绍如何使用Python脚本修改计算机网络适配器的配置参数,包括IP地址、子网掩码、默认网关和DNS服务器设置。
#!/usr/bin/env python
# -*- coding: cp936 -*-




# Author: Jack
# Purpose: modify network adapter configuration parameters
# date: March 30,2012


import wmi




class ModifyNetworkAdapterConfiguration:
    def __init__(self, wmi_object):
        self._nnetwork_adapters = wmi_object.Win32_NetworkAdapterConfiguration(IPEnabled = True)
        if len(self._nnetwork_adapters)<1:
            print("there not find network adapter in your pc\n byebye...")
            exit()
        
    def print_configuration_one(self):
        for obj_network_adapter in self._nnetwork_adapters:
            print obj_network_adapter.Index
            print obj_network_adapter.SettingID
            print obj_network_adapter.Description.encode("cp936")
            print obj_network_adapter.IPAddress
            print obj_network_adapter.IPSubnet
            print obj_network_adapter.DefaultIPGateway
            print obj_network_adapter.DNSServerSearchOrder
    
    def print_configuration_two(self):
        index=1
        for obj_network_adapter in self._nnetwork_adapters:
            print(index, obj_network_adapter.Caption)
            index = index + 1;
            
    def run_one(self):
        self.print_configuration_two()
        
        index = input('please enter order number for network adapter configuration to want view: ')
        nnetwork_adapter = self._nnetwork_adapters[index-1]
        
        print('current network adapter configuration parameters: ')
        print('IP Address: ', nnetwork_adapter.IPAddress)
        print('Subnet Mask: ', nnetwork_adapter.IPSubnet)
        print('Gateway: ', nnetwork_adapter.DefaultIPGateway)
        print('DNS: ', nnetwork_adapter.DNSServerSearchOrder)
        
        ip_address = [raw_input('please input a new ip address for change it: ')]
        subnet_mask = [raw_input('please input a new subnet mask for change it: ')]
        gateway = [raw_input('please input a new gateway for change it: ')]
        gatewayCost = [1]
        dns = [raw_input('please input a new dns for change it: ')]
        
        reboot = 0
        
        # config IP address & subnetmask
        resVal = nnetwork_adapter.EnableStatic(IPAddress = ip_address, SubnetMask = subnet_mask)
        if resVal[0] == 0:
            print("config ip and subnet mask is ok")
        elif resVal[0] == 1: # need reboot os
            print("config ip and subnet mask is ok")
            reboot = reboot + 1
        else:
            print("config ip and subnet mask is failed!", resVal[0])
            exit()
            
        # config default gateway   
        resVal = nnetwork_adapter.SetGateways(DefaultIPGateway = gateway, GatewayCostMetric = gatewayCost)
        if resVal[0] == 0:
            print("config gateway is ok")
        elif resVal[0] == 1: # need reboot os
            print("config gateway is ok")
            reboot = reboot + 1
        else:
            print("config gateway is failed!")
            exit()
            
        # config dns   
        resVal = nnetwork_adapter.SetDNSServerSearchOrder(DNSServerSearchOrder = dns)
        if resVal[0] == 0:
            print("config dns is ok")
        elif resVal[0] == 1: # need reboot os
            print("config dns is ok")
            reboot = reboot + 1
        else:
            print("config dns is failed!")
            exit()
            
        if reboot > 0:
            print('please reboot your os')
        else:
            print('modify network adapter configuration parameters: ')
            print('ip:'.join(nnetwork_adapter.IPAddress))
            print('subnetmask:'.join(nnetwork_adapter.IPSubnet))
            print('default gateway:'.join(nnetwork_adapter.DefaultIPGateway))
            print('DNS:'.join(nnetwork_adapter.DNSServerSearchOrder))
           
        print('modify ip is finish!')
        
    def run_two(self):
        self.print_configuration_two()
        
        index = input('please enter order number for network adapter configuration to want view: ')
        nnetwork_adapter = self._nnetwork_adapters[index-1]
        
        reboot = 0
        
        # config network adapter is dhcp mode
        resVal = nnetwork_adapter.EnableDHCP()
        if resVal[0] == 0:
            print('dhcp mode is ok')
        elif resVal[0] == 1:
            print('dhcp mode is ok')
            reboot = reboot + 1
        else:
            print('dhcp mode is failed')
            exit()
            
        ## config network adapter is dns mode
        #resVal = nnetwork_adapter.EnableDNS(, , , , )
        #if resVal[0] == 0:
        #    print('dns mode is ok')
        #elif resVal[0] == 1:
        #    print('dns mode is ok')
        #    reboot = reboot + 1
        #else:
        #    print('dns mode is failed')
        #    exit()
            
        if reboot > 0:
            print('please reboot your os')
        else:
            print('modify network adapter configuration parameters: ')
            print('ip:'.join(nnetwork_adapter.IPAddress))
            print('subnetmask:'.join(nnetwork_adapter.IPSubnet))
            print('default gateway:'.join(nnetwork_adapter.DefaultIPGateway))
            print('DNS:'.join(nnetwork_adapter.DNSServerSearchOrder))
           
        print('modify ip is finish!')
        
if __name__ == '__main__':
    wmiObj = wmi.WMI()
    modify = ModifyNetworkAdapterConfiguration(wmiObj)
    modify.run_one()
        
        
    
### 修改 Rocky Linux 网络配置的方法 在 Rocky Linux 中,可以通过多种方式修改网络配置。以下是详细的说明: #### 使用 `nmcli` 工具 `nmcli` 是 NetworkManager 的命令行工具,可以用来管理网络连接。 1. **查看当前活动的网络接口** ```bash nmcli device show ``` 2. **编辑现有连接** 如果需要更改某个特定网络接口的 IP 地址、网关或 DNS 设置,可以使用以下命令: ```bash nmcli connection modify <connection-name> ipv4.addresses <ip-address>/<prefix> nmcli connection modify <connection-name> ipv4.gateway <gateway-ip> nmcli connection modify <connection-name> ipv4.dns <dns-server-ip> nmcli connection modify <connection-name> ipv4.method manual ``` 将 `<connection-name>` 替换为实际的连接名称,例如 `eth0` 或者其他自定义名称[^1]。 3. **重启网络服务以应用更改** 应用更改后,需重新加载网络设置: ```bash nmcli connection up <connection-name> systemctl restart NetworkManager ``` #### 手动编辑网络配置文件 如果偏好手动操作,则可以直接编辑 `/etc/sysconfig/network-scripts/ifcfg-*` 配置文件(适用于传统网络脚本模式)。 1. **找到对应的网络接口配置文件** 进入目录并查找目标设备的配置文件: ```bash cd /etc/sysconfig/network-scripts/ ls ifcfg-* ``` 2. **编辑配置文件** 编辑对应设备的配置文件,例如 `ifcfg-ens33`,并将以下参数调整为你所需的值: ```plaintext DEVICE="ens33" BOOTPROTO="static" # 动态分配改为 static ONBOOT="yes" NM_CONTROLLED="no" # 是否由 NetworkManager 控制 PREFIX="24" GATEWAY=<your-gateway-ip> DNS1=<primary-dns-server> DNS2=<secondary-dns-server> IPADDR=<desired-ip-address> NETMASK=<netmask-if-not-using-prefix> ``` 3. **保存退出并激活新配置** 完成编辑后,执行以下命令使更改生效: ```bash ifdown ens33 && ifup ens33 ``` #### 使用 `nmtui` 图形化界面 对于不熟悉命令行的用户,也可以通过交互式的 TUI (Text User Interface) 来完成配置。 运行以下命令启动图形化工具: ```bash nmtui ``` 按照提示选择要编辑的连接,并输入相应的信息来更新其属性。 --- ### 注意事项 当涉及复杂的环境比如 Oracle RAC 部署时,还需要特别注意系统的同步性和一致性问题。例如,在多节点集群环境中,所有节点上的时间区域变量 (`TZ`) 和主机名映射应保持一致[^4]。 此外,若计划共享存储资源或者跨服务器访问数据,可能需要用到 NFS/SMB 自动挂载功能。此时可参照相关文档合理规划路径结构以及权限控制策略[^2]。 最后提醒一点,任何重要的改动之前都建议做好充分备份工作以防万一出现问题能够迅速恢复原始状态!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值