Python

Python codes are from PushIn Project for IT, College of Arts and Letters, Cal State University, San Bernardino.

Library

import requests # php
import os        # hostname
import re, uuid # mac address
import socket    # ip address
import re         # System manufactor, Memory
import psutil      # Hard-drive
import logging    # Logging

System Information

def SysInfo(opt):
    values  = {}
    cache   = os.popen2("SYSTEMINFO")
    source  = cache[1].read()
    #sysOpts = ["OS Name", "OS Version", "System Manufacturer", "System Model", "Domain", "Total Physical Memory", "Available Physical Memory"]
    sysOpts = [opt]

    values[opt] = [item.strip() for item in re.findall("%s:\w*(.*?)\n" % (opt), source, re.IGNORECASE)][0]
    #return values["OS Name"]
    return values[opt]

Convert Bytes to GigaBytes

def bytes2human(n):
    symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
    prefix = {}
    for i, s in enumerate(symbols):
        prefix[s] = 1 << (i + 1) * 10
    for s in reversed(symbols):
        if n >= prefix[s]:
            value = float(n) / prefix[s]
            return '%.1f%s' % (value, s)
    return "%sB" % n

Collect Inputs From the User

# Get manual input
tag = raw_input("Input tag number(5): ")
building = raw_input("Input building(2): ")
room = raw_input("Input room number: ")
purpose = raw_input("Input purpose(Faculty Name, Lab, etc): ")

Collect inputs from the Windows

value = {}

value["Hostname"] = os.environ['COMPUTERNAME']
print "Hostname Collected: " + value["Hostname"]
value["IP"] = socket.gethostbyname(socket.gethostname())
print "IP Address Collected: " + value["IP"]
value["Mac"] = ':'.join(re.findall('..', '%012x' % uuid.getnode()))
print "MAC Address Collected: " + value["Mac"]
value["Active"] = "1"
value["OS"] = SysInfo("OS Name")
print "Operating System Name Collected: " + value["OS"]

# SysInfo
value["TotalMemory"] = SysInfo("Total Physical Memory")
print "Total Memory Collected: " + value["TotalMemory"]
value["AvailableMemory"] = SysInfo("Available Physical Memory")
print "Available Memory Collected: " + value["AvailableMemory"]
value["SysModel"] = SysInfo("System Model")
print "System Model Collected: " + value["SysModel"]
# Hard-drive Information
usage = psutil.disk_usage('/')
value["HD-Total"] = bytes2human(usage.total)
print "Hard-drive Total size Collected: " + value["HD-Total"]
value["HD-Percent"] = usage.percent
print "Hard-drive Usage Collectd: %d" % (value["HD-Percent"])
# Serial Number
process = os.popen('wmic bios get serialnumber')
value["Serial"] = process.read()
print "Serial Number Collected: " + value["Serial"]

Write Log

logging.basicConfig(filename='./Inventory_log.log', level=logging.INFO, format='%(asctime)s %(message)s')
logging.info('Hostname = %s, IP = %s, Mac = %s, OS = %s, TotalMemory = %s, AvailableMemory = %s, SysManufacturer = %s, HD-Total = %s, Serial = %s, Tag = %s, Building = %s, Room = %s, Purpose = %s', value["Hostname"], value["IP"], value["Mac"], value["OS"],value["TotalMemory"], value["AvailableMemory"], value["SysModel"], value["HD-Total"], value["Serial"], tag, building, room, purpose)
print "Finished Writing a Log"

Send the Data to Server

r = requests.post("ipaddress here", data = {'tag': tag, 'building': building, 'room': room, 'purpose': purpose, 'hostname': value["Hostname"], 'ip': value["IP"], 'mac': value["Mac"], 'Active': value["Active"], 'os': value["OS"], 'TotalMemory': value["TotalMemory"], 'AvailableMemory': value["AvailableMemory"], 'SysModel': value["SysModel"], 'HD-Total': value["HD-Total"], 'HD-Percent': value["HD-Percent"], 'serial': value["Serial"]}, verify = False )
print(r.text)
# Verify output
print (r.json)
print (r.content)

results matching ""

    No results matching ""