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

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

客户端

# -*- 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 异常处理编程 编写程序,统计用户输入的内容中,分别包含多少个英文字母字符、数字字符、空格、其他字符。

    python 异常处理编程 第二题 要求 编写程序,统计用户输入的内容中,分别包含多少个英文字母字符.数字字符.空格.其他字符. 示例 代码 方法一 s=input('请输入一行文字:\n')eN,n ...

  3. Python学习日记1——python3.8.3安装以及配置环境

    1.下载Python3.8.3 进入Python官网,下载python3.8.3安装包 2.安装python 1.选择安装方式--默认方式和自定义方式(我选择的是自定义) 2.选择要安装的软件工具 3 ...

  4. 【Python aiohttp异步爬虫】批量爬取电脑壁纸

    寒假在家,实在无事可做,就找到了崔庆才爬虫52讲的课程,巩固一下爬虫知识,最近也是学到了异步爬虫,本来想按照视频教的案例实践一下就可以了,没想到案例网站证书过期了,没办法进行实践,只能去找别的网站实践 ...

  5. linux配置SVN,添加用户,配置用户组的各个权限教程

    前言 今天组长要我给新员工添加svn 的权限,以及赋予他们权限访问指定的目录,于是就顺手写个教程吧,毕竟好记性不如烂笔头 一.xshell登陆服务器 用xshell登陆服务器,cd切换到服务器中svn ...

  6. sublime配置python开发环境_Sublime Text 配置Python3.7开发环境

    知道Python的大名很久了,由于太懒没有去研究过.不知什么原因今天想去探究一下,和我用的.Net有何区别,满足一下自己的好奇心.由于以前就知道Python是什么,可以用来做什么,就没有去看Pytho ...

  7. 电脑安装python3.7说缺少-安装python缺少

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! api 3.0 签名 v1示例 注意: 如果是在 python 2环境中运行,需 ...

  8. linux中python编译器的配置_linux下配置python3详解

    一:安装依赖环境 1.1:首先安装gcc编译器,gcc有些系统版本已经默认安装,通过  gcc --version  查看,没安装的先安装gcc,yum -y install gcc 1.2:输入命令 ...

  9. linux中python解释器的配置_CentOS7配置Python3开发环境

    许多小伙伴在刚接触Unix/Linux操作系统时会非常的不适应,毕竟突然的命令行操作会使习惯于Windows桌面操作的人特别难受,尤其是像笔者这样的手残党,是需要一段时间来适应的. 记得刚刚接触到Un ...

最新文章

  1. 华为某研究生程序员哀叹:年薪五十多万,存款一百万,却不知道未来怎么走!...
  2. linux集群无密码访问,Linux服务器集群通过SSH无密码登录
  3. WebP图片格式,压缩提高28%
  4. vector中erase函数
  5. python压测接口_python的一个接口压测脚本
  6. python随机划分数据集_Python之机器学习-sklearn生成随机数据
  7. 什么时候出来的_DNF手游官网正版什么时候出来?地下城手游上线日期分享
  8. 2017杭州云栖大会FAQ(持续更新中)
  9. 关于Eclipse中各个文件(*.java *.jsp *.xml)文字大小的设定。
  10. PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)
  11. 程序员必备的css工具,8个提高效率的CSS实用工具
  12. java网上订餐系统怎么做_基于Java的网上订餐系统
  13. 基于精确背景补偿的动态目标检测算法
  14. Android TextView设置下划线
  15. mysql reconnect_在设置了MYSQL_OPT_RECONNECT之后,mysql_ping是否还有必要?
  16. 判断一个字符数据是否是数字字符
  17. superset详解(二)--sql工具箱
  18. 电容触摸按键原理和实现
  19. 信息传播学习笔记(1)——SIS模型原理与公式推导
  20. 英格兰的政治+德意志的工业科技+犹太的金融+北美的丰富资源=世界NO.1强国

热门文章

  1. js 空数组是true还是false
  2. 一个简单的PHP模板引擎
  3. burpsuit学习--修改来源地址
  4. web开发下的各种下载方法
  5. 2019 Multi-University Training Contest 2 - 1008 - Harmonious Army - 最大流
  6. [EffectiveC++]item17:以独立语句将newed对象置入智能指针
  7. 7月新的开始 - Axure学习03 - 布尔运算、表单元件
  8. Docker容器中MySQL最大连接数被限制为214的解决方案
  9. Flask 系列之 构建 Swagger UI 风格的 WebAPI
  10. DOCKER上运行DOTNET CORE