最近领导想统计一下用户电脑配置信息。好几百人难道让我一个一个的去弄吗?

想想还是写个程序接收一下吧。

客户端

# -*- coding: utf-8 -*-

#author:Guoyabin

import socket,psutil,os,sys

class wininfo():

def ip_info(self):

hostname=socket.gethostname() #获取主机名

ipconfig=psutil.net_if_addrs().items() #所有网卡信息

try:

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.connect(('114.114.114.114', 80))

addre = s.getsockname()[0] #获取ip地址

finally:

s.close() #关闭socket连接

for k,v in ipconfig:

try:

if addre in v[1].address:

mac=v[0].address #获取mac地址

'''

gateway=addre.split('.')[0]+'.'+addre.split('.')[1]+'.'+addre.split('.')[2]+'.1' #获取网关

if '10.8.70' in addre: #特殊网关

gateway='10.8.70.2'

os.system("netsh interface ip set address name=%s source=static addr=%s mask=255.255.255.0 gateway=%s gwmetric=1" % (k,addre,gateway)) #设置网关

'''

os.system("netsh interface ip set dns name=%s source=static addr=114.114.114.114" % k) #设置dns

except:

pass

ip=str(hostname)+' '+addre+' '+mac

return(ip)

def mem_info(self):

mem_all=psutil.virtual_memory().total/1024/1024/1024 #获取内存大小

mem=round(mem_all) #取最接近整数的值

return(mem)

def cpu_info(self):

try:

name=os.popen('wmic cpu get name').readlines()

cpuname1=name[-4].replace(' ','')

cpuname=cpuname1.replace(' ','') #获取Windows CPU型号

except:

cpuname=' '

cpucount=psutil.cpu_count() #获取CPU核心

cpu=str(cpuname)+' '+str(cpucount)

return(cpu)

def disk_info(self):

sum=0

for i in psutil.disk_partitions():

try:

sum=sum+psutil.disk_usage(i.mountpoint).total #获取硬盘大小

except:

pass

disk=round(sum/1024/1024/1024) #取最接近整数的值

return(disk)

def getname(self):

name=input('请输入您的名字:')

return(name)

class linuxinfo(wininfo):

def getname(self):

name='name'

return(name)

def cpu_info(self):

cpuname1=os.popen("grep -m1 'model name' /proc/cpuinfo |awk -F ':' '{print $2}'").readlines()

cpuname2=cpuname1[-1].replace(' ','')

cpuname=cpuname2.replace(' ','') #获取Linux CPU型号

cpucount=psutil.cpu_count() #获取CPU核心

cpu=str(cpuname)+' '+str(cpucount)

return(cpu)

def ip_info(self):

hostname=socket.gethostname() #获取主机名

try:

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.connect(('114.114.114.114', 80))

addre = s.getsockname()[0] #获取ip地址

finally:

s.close() #关闭socket连接

ipconfig=psutil.net_if_addrs().items() #所有网卡信息

for k,v in ipconfig:

if addre in v[0].address:

mac=v[2].address #获取mac地址

ip=str(hostname)+' '+addre+' '+mac

return(ip)

if __name__=='__main__':

serverip = '192.168.8.50'

port = 9999

client=socket.socket()

client.connect((serverip,port))

if sys.platform=='win32':

send=wininfo()

else:

send=linuxinfo()

data = str(send.getname())+' '+str(send.ip_info())+' '+str(send.cpu_info())+' '+str(send.mem_info())+' '+str(send.disk_info())

#print(data)

client.sendall(bytes(data,encoding='utf-8'))

client.close()

服务端,我直接把'密码接收器'程序修改了一下

# -*- coding:utf-8 -*-

#author:Guoyabin

import socketserver

import time

class recvpasswd(socketserver.BaseRequestHandler):

def handle(self):

conn=self.request #封装所有对象请求

while True:

date=conn.recv(1024).decode()

if date=='exit':

break

if len(date)==0: #空数据则断开

break

#if '=>' not in date: #防止恶意数据写入

#break

print(date)

self.savepasswd(date)

def savepasswd(self,passwd):

now=time.strftime("%Y-%m-%d %H:%M:%S")

errfile=open('passwd.txt','a')

errfile.write(now+' '+str(passwd)+' ')

errfile.close()

if __name__=='__main__':

server=socketserver.ThreadingTCPServer(('0.0.0.0',9999),recvpasswd)

server.serve_forever()

最终服务端看到的结果就是:

而且会在服务端同级目录生成password.txt文档。和命令提示符里显示的一样

python软件下载对电脑配置要求-python3批量统计用户电脑配置相关推荐

  1. python需要电脑配置-python3批量统计用户电脑配置

    最近领导想统计一下用户电脑配置信息.好几百人难道让我一个一个的去弄吗? 想想还是写个程序接收一下吧. 客户端 # -*- coding: utf-8 -*- #author:Guoyabin impo ...

  2. python软件下载安装百度网盘-Python3.8.0

    Python3.8.0是一款广受程序员欢迎的编程语言,也是面向对象的一款设计语言,Python以其语言的灵活和简易性,具有非常简捷而清晰的语法特点,在脚本工具.数据分析.web后端等等领域都有着优良的 ...

  3. python软件如何安装方法_【新手必看】Python软件下载及安装教程

    原标题:[新手必看]Python软件下载及安装教程 Python下载:免费开源 官网地址:https://www.python.org/downloads/ 下载对应版本Python:python-3 ...

  4. python软件下载网站

    几个不错的python软件下载网站如下所示: https://www.lfd.uci.edu/~gohlke/pythonlibs/ https://pypi.org/project/

  5. python软件下载安装-【Python下载】Python安装 v3.8.1 官方版-七喜软件园

    Python是一款通用型的计算机程序设计语言,本次为用户提供的软件就是该语言的运行环境以及基础的编程工具,在用户完成该程序的安装后,即可使用Python语言进行各种编程操作了,有需要的用户快来下载吧. ...

  6. python软件下载安装教程,如何下载和安装python

    python下载安装教程 首先打开浏览器,百度搜索[python].出现搜索结果后,再进入下图所示的官网中.进入官网后,鼠标移至[download]再选择自己的系统.进入下载页面后,再选择python ...

  7. python软件下载安装教程,python详细安装教程视频

    python安装教程 python安装教程具体如下:1.确定电脑的系统类型. 在安装python之前,你要先确定一下你的电脑的系统类型及详细配置,具体方法如下:点击桌面上的快捷图标"此电脑& ...

  8. python软件下载安装教程,python下载安装教程

    python下载安装教程 python下载安装教程:自定义安装目录,点击install进行安装,打开cmd窗口,输入python,显示python的版本,安装成功. Python语言更适合初学者,Py ...

  9. python软件下载免费还是收费-开源等于免费吗?真相在这里

    原标题:开源等于免费吗?真相在这里 首先,开源软件和免费软件是两个概念: 开源软件是指公开源代码的软件.开源软件在发行的时候会附上软件的源代码,并授权允许用户更改.传播或者二次开发. 免费软件就是免费 ...

最新文章

  1. 语言模型也不能乱说话!DeepMind发布GopherCite:讲话必须带证据
  2. mysql维护索引_高性能的MySQL(5)索引策略-索引和表的维护
  3. SAP Spartacus里几个和Focus相关的directive的继承关系以及元素focus是如何实现的
  4. 1030. 完美数列(25)
  5. 简单的Postman,还能玩出花?
  6. 源码编译php mysql_linux下apache+mysql+php开发环境纯源代码编译搭建(转)
  7. 编程心得体会_CimatronE14高级五轴第三步,平行于曲线铣,会3轴编程更易理解
  8. html email输入框,html5给文本框实现email域名自动完成效果
  9. Weblogic常用监控指标
  10. 手机信令数据怎么获得_手机信令数据辅助下的张江科学城职住分析及对策 | 上海城市规划...
  11. echarts设置之stack参数
  12. Atitit 快速开发的推荐技术标准化 规范 大原则
  13. (JavaScript)浮动广告代码
  14. 2022GPLT团体程序设计天梯赛L1-086 斯德哥尔摩火车上的题
  15. 如何使用逆分布函数模拟MEDIAN()聚合函数
  16. 大数据 就业 缺口_大数据就业前景广阔,大数据人才紧缺,岗位缺口大
  17. 如何做口碑营销?企业实施网络口碑营销的技巧
  18. HTB----Heist(Hard)
  19. 大数据实战二十四课 - Spark SQL04
  20. PADS如何将导入的板框2D线转换成板框

热门文章

  1. GridView上同时定义了 DataSource 和 DataSourceId
  2. php高强度精密涂覆钢管,电力内外涂覆钢管
  3. CMap的使用(转)
  4. python __globals__, __file__
  5. Leetcode OJ: Maximun Subarray
  6. AS3 Signals
  7. 在中國古代是沒有這種現象的
  8. 使用PowerDesinger 正向工程
  9. 因DataValueField设置不当引起的DropDownList的SelectedItem的取不到所选值的问题
  10. Bailian2702 密码翻译【密码】