最近領導想統計一下用戶電腦配置信息。好幾百人難道讓我一個一個的去弄嗎?
想想還是寫個程序接收一下吧。
客戶端
# -*- coding: utf-8 -*-
python下載,#author:Guoyabin
import socket,psutil,os,sys
class wininfo():
def ip_info(self):
hostname=socket.gethostname() #獲取主機名
python 下載器、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地址
python下載哪個版本好。finally:
s.close() #關閉socket連接
for k,v in ipconfig:
try:
if addre in v[1].address:
python 統計,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'
python安裝包下載、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
python和java。ip=str(hostname)+' '+addre+' '+mac
return(ip)
def mem_info(self):
mem_all=psutil.virtual_memory().total/1024/1024/1024 #獲取內存大小
mem=round(mem_all) #取最接近整數的值
python編程需要什么配置的電腦。return(mem)
def cpu_info(self):
try:
name=os.popen('wmic cpu get name').readlines()
cpuname1=name[-4].replace(' ','')
python 數據分析。cpuname=cpuname1.replace(' ','') #獲取Windows CPU型號
except:
cpuname=' '
cpucount=psutil.cpu_count() #獲取CPU核心
cpu=str(cpuname)+' '+str(cpucount)
python3安卓版下載?return(cpu)
def disk_info(self):
sum=0
for i in psutil.disk_partitions():
try:
如何下載python軟件,sum=sum+psutil.disk_usage(i.mountpoint).total #獲取硬盤大小
except:
pass
disk=round(sum/1024/1024/1024) #取最接近整數的值
return(disk)
python要求電腦配置。def getname(self):
name=input('請輸入您的名字:')
return(name)
class linuxinfo(wininfo):
def getname(self):
python統計個數、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(' ','')
手機版python編程軟件,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文檔。和命令提示符里顯示的一樣
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态