Ausgabe der benutzten Windows-Version.

Hallo alle zusammen,

ich brauche mal eure Hilfe. Könnt Ihr bitte mal das Script für mich testen?
Ich habe das gute Stück geschrieben um die aktuell benutzte Windows-Version
zu ermitteln. Bei mir klappt es.


<?
ob_start();
eval("phpinfo();");
$info = ob_get_contents();
ob_end_clean();

$arr_info = explode("
", $info);

foreach($arr_info as $line)
{
	if(strpos($line, "System "))
	{
	   $arr_line 		= explode("build", $line);
		$lenght 			= strlen($arr_line[0]);
		$Win_Version 	= substr($arr_line[0], $lenght-4,3);
		$Win_Version   = trim($Win_Version);
	}
}

Switch($Win_Version)
{

case "5.1":
		echo "Windows XP";
		break;

case "5.2":
		echo "Windows Server 2003";
		break;

case "6.0":
		echo "Windows Vista / Server 2008";
		break;

case "6.1":
		echo "Windows 7 / Server 2008 R2";
		break;

case "6.2":
		echo "Windows 8";
}

?>

Einfach in ein leeres Script kopieren und ausführen. Es sollte die benutzte Windows-Version ausgegeben werden.

Besten Dank für eure Hilfe.

Hallo Martin,

funktioniert.

Besten Dank Rainer!! :slight_smile:

Aehh…bei mir nicht. Läft in 9ms Sekunden durch.


print_r ($info);

liefert mir in der Systems Zeile:

System Windows NT 6.1 build 7601 ((null) Service Pack 1) i586

in


echo $Win_Version;

steht:

6.1/tr/tr

Keine Ahnung, wo die /tr’s herkommen.

Hallo wupperi,

das passt eigentlich. Ich habe auch Win7. Bei mir sieht das genau so aus.
Danach mach ich noch einen Explode bei „build“ und hol mir die letzten Zeichen.

hmm. Komisch. (aber nicht komisch wie lustig!!)

Dann muss ich noch mal schaun. :o

Besten Dank

Edit:

OK, da muss ich den Spass noch bereinigen.

Habe meinen Beitrag nochmal upgedatet, hat sich mit Deinem überschnitten, vieleicht hilft Dir die Info.

Hallo wupperi,

ich habe das Script mal geändert. Kannst Du das noch mal probieren?

Hallo alle zusammen,

ich benötige das Script um die „SessionID“ für „IPS_ExecuteEx“ zu ermitteln.
Ich habe das ganze in eine Funktion gepackt. Wenn das mal einer gebrauchen kann, hier die Funktion.


function Get_SessionID()
{
	// Ausgabepufferung aktivieren
	ob_start();
	// phpinfo abfragen
	eval("phpinfo();");
	// den Inhalt in eine Variable schreiben
	$info = ob_get_contents();
	// Löschen und deaktiviert des Ausgabe-Puffers
	ob_end_clean();

	// Zeilenweise zerlegen
	$arr_info = explode("
", $info);

	// Zeilenweise den Inhalt nach der System-Zeile durchsuchen
	foreach($arr_info as $line)
	{
	   // ausgeben der SessionID
		if((strpos($line, "System =>")) === 0)
		{
			// Windows XP
			if(strpos($line, "5.1")) return 0;
			// Windows Server 2003
			if(strpos($line, "5.2")) return 1;
			// Windows Vista / Server 2008
			if(strpos($line, "6.0")) return 1;
			// Windows 7 / Server 2008 R2
			if(strpos($line, "6.1")) return 1;
			// Windows 8
			if(strpos($line, "6.2")) return 1;
		}
	}
}

Der Rückgabewert ist die SessionID. Benutzt wird die Funktion so:


$SessionID = Get_SessionID();

Nope, geht immer noch nicht. Der trim Befehl hat die /tr (Wie ich glaube die HTML tags für eine Zeile in einer Tabelle) nicht entfernt.
Selbst ein


$Win_Version = substr($Win_Version, 0,3);

entfernt die /tr’s nicht.

Seltsam, irgendwie scheint man hier mit Stringverarbeitung nicht weiter zu kommen…

Ja, ich weiss. Ich habe es jetzt anders gelöst (siehe Funktion).

Trotzdem besten Dank!!

Hab das Script mal auf schloff gebracht. Die phpinfo() hat sich geändert.

Funktioniert natürlich nur noch mit der Version 2.5!!