点击上方蓝字 ● 关注捷创源科技

简介:
下面是自己用Python做项目过程中,自己封装的Internet类,可以设置本机IP地址、默认网关、子网掩码和DNS,也可以获取本机IP地址、默认网关、子网掩码、DNS和本机MAC信息。
myPyDoInternet.py
"""=== coding: UTF8 ==="""import uuidimport wmi# IP地址arrIPAddresses = ['192.168.30.79']# 子网掩码arrSubnetMasks = ['255.255.255.0']# 默认网关arrDefaultGateways = ['192.168.30.1']arrGatewayCostMetrics = [1]# DNS列表arrDNS = ['114.114.114.114', '114.114.115.115']class InternetDef(object):intReboot = 0"""初始化函数"""def __init__(self, arrIPAddressesServer, arrSubnetMasksServer,arrDefaultGatewaysServer, arrGatewayCostMetricsServer, arrDNSServers,wmiService, colNicConfigs, objNicConfig):self.arrIPAddressesServer = arrIPAddressesServer # 本机IP地址self.arrSubnetMasksServer = arrSubnetMasksServer # 子网掩码self.arrDefaultGatewaysServer = arrDefaultGatewaysServer # 默认网关self.arrGatewayCostMetricsServer = arrGatewayCostMetricsServerself.arrDNSServers = arrDNSServersself.wmiService = wmiServiceself.colNicConfigs = colNicConfigsself.objNicConfig = objNicConfigself.strMACAddress = "00-00-00-00-00-00" # 本机MAC地址"""启动WMI服务函数"""def startWmiService(self):# 创建WMI服务对象self.wmiService = wmi.WMI()# 调用网络适配器配置self.colNicConfigs = self.wmiService.Win32_NetworkAdapterConfiguration(IPEnabled=True)if len(self.colNicConfigs) < 1:print("没有找到可用的网络适配器!")return Falseelse:self.objNicConfig = self.colNicConfigs[0]return True"""设置IP服务函数"""def setIPServers(self):returnValue = self.objNicConfig.EnableStatic(IPAddress=self.arrIPAddressesServer,SubnetMask=self.arrSubnetMasksServer)if returnValue[0] == 0:print("修改IP成功")elif returnValue[0] == 1:print("修改IP成功")InternetDef.intReboot += 1else:print("修改IP失败")exit()"""设置默认网关服务函数"""def setGatewaysServer(self):returnValue = self.objNicConfig.SetGateways(DefaultIPGateway=self.arrDefaultGatewaysServer,GatewayCostMetric=self.arrGatewayCostMetricsServer)if returnValue[0] == 0:print("修改网关成功")elif returnValue[0] == 1:print("修改网关成功")InternetDef.intReboot += 1else:print("修改网关失败")exit()"""设置DNS服务函数"""def setDNSServers(self):returnValue = self.objNicConfig.SetDNSServerSearchOrder(DNSServerSearchOrder=self.arrDNSServers)if returnValue[0] == 0:print("修改DNS成功")elif returnValue[0] == 1:print("修改DNS成功")InternetDef.intReboot += 1else:print("修改DNS失败")exit()"""设置Internet服务函数"""def setInternetServer(self):if self.startWmiService(): # 启动WMI服务,如果返回True,则设置Internetself.setIPServers()self.setGatewaysServer()self.setDNSServers()else:exit()"""获取IP信息函数"""def getIPInfo(self):print("本机IP:\n", self.objNicConfig.IPAddress[0])"""获取子网掩码信息函数"""def getSubnetInfo(self):print("子网掩码:\n", self.objNicConfig.IPSubnet[0])"""获取网关信息函数"""def getGatewaysInfo(self):print("默认网关:\n", self.objNicConfig.DefaultIPGateway[0])"""获取DNS信息函数"""def getDNSInfo(self):print("本机DNS:\n" + '\n'.join(self.objNicConfig.DNSServerSearchOrder))"""获取本机MAC函数"""def getMACAddress(self):mac = uuid.UUID(int=uuid.getnode()).hex[-12:]strTempMac = ":".join([mac[e:e + 2] for e in range(0, 11, 2)])self.strMACAddress = strTempMac.replace(':', '-').upper()print("本机MAC:\n", self.strMACAddress)"""获取Internet所有信息函数"""def getInternetInfo(self):if InternetDef.intReboot > 0:print("需要重新启动计算机!")if self.startWmiService(): # 重新启动WMI服务,如果返回True,则获取internet信息self.getIPInfo()self.getSubnetInfo()self.getGatewaysInfo()self.getDNSInfo()self.getMACAddress()else:exit()"""========================================主函数功能测试========================================"""if __name__ == '__main__':# 定义internet对象internet1 = InternetDef(arrIPAddresses, arrSubnetMasks, arrDefaultGateways,arrGatewayCostMetrics, arrDNS, None, None, None)# 设置Internetinternet1.setInternetServer()# 获取internet信息internet1.getInternetInfo()# Python程序运行结束后不关闭控制台命令input("\n请按任意键退出。。。")"""# 定义internet对象internet2 = InternetDef([""], [""], [""], [1], ["", ""], None, None, None)# 获取internet信息internet2.getInternetInfo()# Python程序运行结束后不关闭控制台命令input("\n请按任意键退出。。。")"""
关注上面微信公众号“捷创源科技”,每天获取技术干货,让我们一起成长!
文章转载自捷创源科技,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




