PHP/Anzeige von Systeminformationen
Aus Mikiwiki
< PHP
Inhaltsverzeichnis |
Beschreibung
| Name | systeminformation.php |
| Autor | Michael Kuhn |
| Datum | 19 October 2008 (Version 0.1) |
| Beschreibung | Anzeige von Systeminformationen. |
Konfiguration
Notwendiger Eintrag in der Datei "/etc/sudoers" mit "visudo".
www-data ALL=NOPASSWD: /usr/sbin/dmidecode
Skript
|
<?php ## Name systeminformation.php ## Date 19 October 2008 ## Description Outputs some information about hardware and installed software ## of the host the script is running on. ## Hints The following line needs to be inserted into file "/etc/sudoers": ## www-data ALL=NOPASSWD: /usr/sbin/dmidecode ##### CONFIGURATION ##### $DMIDECODE = "/usr/sbin/dmidecode"; $HWINFO = "/usr/sbin/hwinfo"; $output_exists_dmidecode = shell_exec("[ -x /usr/sbin/dmidecode ] && echo -n $?"); $output_exists_hwinfo = shell_exec("[ -x /usr/sbin/hwinfo ] && echo -n $?"); ##### FUNCTIONS ##### function tr_head($title) { echo "<tr>\n<th align=\"left\" bgcolor=\"#C0C0C0\" colspan=\"2\">" . $title . "</th>\n</tr>\n"; } function tr($title, $content) { echo "<tr>\n<td bgcolor=\"#DCDCDC\"><b>" . $title . "</b></td>\n<td>" . $content . "</td>\n</tr>\n"; } ##### MAIN PROGRAM ##### ## Prüfung auf Vorhandensein von "dmidecode" und "hwinfo". if ("$output_exists_dmidecode" != "0" or "$output_exists_hwinfo" != "0") { if ("$output_exists_dmidecode" != "0") { #echo "DMIDECODE: <pre>X" . $output_exists_dmidecode . "X</pre><br />\n"; echo "\"dmidecode\" fehlt!<br />\n"; } if ("$output_exists_hwinfo" != "0") { #echo "HWINFO: <pre>X" . $output_exists_hwinfo . "X</pre><br />\n"; echo "\"hwinfo\" fehlt!<br />\n"; } exit(); } echo "<h1>Systeminformationen</h1>\n"; $output_date = shell_exec("date \"+%d. %B %Y\""); echo "<p>Datum: " . $output_date . "</p>\n"; echo "<table border=1>\n"; tr_head("Allgemeine Informationen"); ## Rechnername $output_rechnername = shell_exec("uname -n"); tr("Rechnername", $output_rechnername); ## Betriebssystem $output_betriebssystem = shell_exec("cat /etc/issue.net"); tr("Betriebssystem", $output_betriebssystem); ## Kernel $output_kernel = shell_exec("uname -sr"); tr("Kernel", $output_kernel); ## "root"-Passwort ## IP-Adresse $output_ipadresse = shell_exec("ip address show | grep \"inet \" | awk '{ print $2 }'"); tr("IP-Adresse", $output_ipadresse); ## Nameserver $output_nameserver = shell_exec("cat /etc/resolv.conf | grep \"nameserver \" | awk '{ print $2 }'"); tr("Nameserver", $output_nameserver); ## Hardware tr_head("Hardware"); ## Netzteil tr ("Netzteil", " "); ## Motherboard $output_motherboard = shell_exec("sudo $DMIDECODE -s system-manufacturer && sudo $DMIDECODE -s system-product-name"); tr("Motherboard", $output_motherboard); ## BIOS $output_bios = shell_exec("sudo $DMIDECODE -s bios-vendor && sudo dmidecode -s bios-version && sudo $DMIDECODE -s bios-release-date"); tr("BIOS", $output_bios); ## Prozessor $output_prozessor = shell_exec("$HWINFO --cpu | grep '^ Model:' | tr '\042' '%' | awk -F% '{ print $2 }'"); $output_prozessor_cache = shell_exec("$HWINFO --cpu | grep '^ Cache:' | awk -F: '{ print $2 }'"); tr("Prozessor", $output_prozessor . " / " . $output_prozessor_cache . " Cache"); ## Arbeitsspeicher $output_arbeitsspeicher = shell_exec("$HWINFO --memory | grep '^ Memory Size:' | awk -F: '{ print $2 }'"); tr("Arbeitsspeicher", $output_arbeitsspeicher); ## Festplatte $output_festplatte = shell_exec("$HWINFO --disk | grep '^ Model:' | tr '\042' '%' | awk -F% '{ print $2 }'"); tr("Festplatte", $output_festplatte); $output_belegung = disk_free_space("/"); tr("Festplattenbelegung", number_format($output_belegung, 0, '.', '\'') . " Byte freier Platz auf \"/\""); ## Tastatur $output_tastatur = shell_exec("$HWINFO --keyboard | grep '^ Model:' | tr '\042' '%' | awk -F% '{ print $2 }'"); tr("Tastatur", $output_tastatur); ## Bildschirm tr("Bildschirm", " "); ## Grafikkarte $output_grafikkarte = shell_exec("$HWINFO --gfxcard | grep '^ Model:' | tr '\042' '%' | awk -F% '{ print $2 }'"); tr("Grafikkarte", $output_grafikkarte); ## Soundkarte $output_soundkarte = shell_exec("$HWINFO --sound | grep '^ Model:' | tr '\042' '%' | awk -F% '{ print $2 }'"); tr("Soundkarte", $output_soundkarte); ## Netzwerkkarte $output_netzwerkkarte_vendor = shell_exec("$HWINFO --netcard | grep '^ Vendor:' | tr '\042' '%' | awk -F% '{ print $2 }'"); $output_netzwerkkarte_device = shell_exec("$HWINFO --netcard | grep '^ Device:' | tr '\042' '%' | awk -F% '{ print $2 }'"); tr("Netzwerkkarte", $output_netzwerkkarte_vendor . $output_netzwerkkarte_device); ## CD-ROM-Laufwerk $output_cdrom = shell_exec("$HWINFO --cdrom | grep '^ Model:' | tr '\042' '%' | awk -F% '{ print $2 }'"); $output_cdrom_features = shell_exec("$HWINFO --cdrom | grep '^ Features:' | awk -F: '{ print $2 }'"); tr("CD-ROM-Laufwerk", $output_cdrom . " (" . trim($output_cdrom_features) . ")"); ##### Software ##### echo "</table>\n"; echo "<h2>Installierte Pakete</h2>\n"; $output_software = shell_exec("COLUMNS=200 dpkg -l | grep ^ii"); echo "<pre>$output_software</pre>"; ?> |
