@ -1,17 +1,3 @@ |
|||||
import psi |
|
||||
import psi.arch |
|
||||
import psi.process |
|
||||
from datetime import * |
from datetime import * |
||||
#from datetime import timedelta |
|
||||
|
|
||||
a = psi.arch.arch_type() |
|
||||
|
|
||||
print a.sysname |
|
||||
print a.release |
|
||||
print a.nodename |
|
||||
print a.machine |
|
||||
z = psi.process.Process(1) |
|
||||
print z.start_time.datetime() |
|
||||
print timedelta(seconds = psi.uptime()[0]) |
|
||||
print datetime.datetime.now() |
|
||||
|
|
@ -0,0 +1,80 @@ |
|||||
|
''' |
||||
|
This borrows extensivelly from Gnome Network Monitor |
||||
|
https://gnetworkmonitor.svn.sourceforge.net/svnroot/gnetworkmonitor/trunk/ |
||||
|
Gnome-network-monitor is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation, version 2 of the License. |
||||
|
''' |
||||
|
import socket |
||||
|
import fcntl |
||||
|
SIOCGIFHWADDR = 0x8927 # MAC address |
||||
|
SIOCGIFADDR = 0x8915 # IPv4 address |
||||
|
SIOCGIFNETMASK = 0x891B # interface mask |
||||
|
SIOCGIFBRDADDR = 0x8919 # broadcast address |
||||
|
|
||||
|
|
||||
|
|
||||
|
#def get_interfaces(): |
||||
|
#""" |
||||
|
#Returns a list of all network interfaces present, such as [eth0, eth1, lo] |
||||
|
#""" |
||||
|
fl = open('/proc/net/dev','r') |
||||
|
lines = fl.readlines() |
||||
|
fl.seek(0) |
||||
|
print [ l[:l.find(":")].strip() for l in lines if ":" in l ] |
||||
|
# end def get_interfaces(): |
||||
|
|
||||
|
|
||||
|
#def get_iface_statistics(iface): |
||||
|
keys_dyn_data = ["bytes_in", "packets_in","errors_in", "bytes_out", "packets_out","errors_out" ] |
||||
|
a = 'eth0' |
||||
|
delim = "%s:" % (a) # "eth0:" |
||||
|
if_numbers = [ t.strip().strip(delim) for t in lines if delim in t ][0] |
||||
|
iface_data = dict(zip(keys_dyn_data, [ int(if_numbers.split()[index]) for index in (0, 1, 2, 8, 9, 10)])) |
||||
|
print iface_data |
||||
|
#end def get_iface_statistics |
||||
|
|
||||
|
|
||||
|
#helper for get_MAC_address |
||||
|
def strip_hex(n): |
||||
|
return "%02x" % (ord(n)) |
||||
|
# end helper for get_MAC_address |
||||
|
|
||||
|
#def get_MAC_address(self, iface): |
||||
|
""" |
||||
|
Returns the MAC address for an interface or None if the |
||||
|
interface does not have one. |
||||
|
""" |
||||
|
iface = 'eth0' |
||||
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
||||
|
iface = iface.strip() |
||||
|
ifr = iface + '\0'*(32-len(iface)) |
||||
|
|
||||
|
try: |
||||
|
r = fcntl.ioctl(s.fileno(), SIOCGIFADDR, ifr) |
||||
|
addr = map(strip_hex, r[18:24]) |
||||
|
ret = (':'.join(map(str, addr))) |
||||
|
except IOError: |
||||
|
ret = '' |
||||
|
print ret |
||||
|
# end def get_MAC_address(self, iface): |
||||
|
|
||||
|
#helper for iface data except MAC |
||||
|
#def __get_socket_data(self, iface, ioctl_const): |
||||
|
def get_socket_data(iface, ioctl_const): |
||||
|
#""" |
||||
|
#Calls ioctl with a given constant. |
||||
|
#""" |
||||
|
sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
||||
|
ifreq = (iface + '\0'*32)[:32] |
||||
|
try: |
||||
|
result = fcntl.ioctl(sockfd.fileno(), ioctl_const, ifreq) |
||||
|
return socket.inet_ntoa(result[20:24]) |
||||
|
except IOError: |
||||
|
return "None" |
||||
|
# end helper for iface data except MAC |
||||
|
|
||||
|
print get_socket_data('eth0', SIOCGIFADDR) |
||||
|
print get_socket_data('eth0', SIOCGIFNETMASK) |
||||
|
print get_socket_data('eth0', SIOCGIFBRDADDR) |
||||
|
|