OS opvragen
robijn - 13/02/2006 16:00
Nieuw lid
hoe kan je je OS opvragen via php???
alvast bedankt!
13 antwoorden
Gesponsorde links
vinTage - 13/02/2006 16:15
Nieuw lid
Dat gaat niet alleen met php dacht ik.
Je moet het opvragen via javascript, en dan zou je de variabelen naar php kunnen pompen.
Bekijk de bron van deze pagina voor een mooi javascript.
Frederic - 13/02/2006 16:15 (laatste wijziging 13/02/2006 16:17)
PHP ver gevorderde
Door tutorials te lezen en Google te gebruiken
@Vintage: Gaat wel, want ik gebruik hier geen enkel Javascriptje ;)
robijn - 13/02/2006 16:29
Nieuw lid
kbedoel wel de OS van de client
Maarten - 13/02/2006 16:33 (laatste wijziging 13/02/2006 16:35)
Erelid
Moest je de moeite nemen om te zoeken tussen de scripts zou je dit script gevonden hebben waar het OS bepaald wordt... dus als je dat stuk code er even uit haalt en in een functie giet bekom je dit:
<?php
function os() {
$http_u_a = strtolower(rawurldecode($_SERVER['HTTP_USER_AGENT']));
if(eregi("(win|windows)[ ]*((nt)*[ /]*([0-9]+(.?[0-9]+))*)",$http_u_a,$regs)) {
if(eregi("(win|windows)[ ](95)",$http_u_a)) {
$os = 'Windows 95';
} elseif(eregi("(win|windows)[ ](98)",$http_u_a)) {
$os = 'Windows 98';
} elseif(eregi("(win|windows)[ ](me)",$http_u_a)) {
$os = 'Windows ME';
} elseif(eregi("(win|windows)[ ](nt)",$http_u_a)) {
if(eregi("(win|windows)[ ](nt)[ ](5.1)",$http_u_a)) {
$os = 'Windows XP';
} elseif(eregi("(win|windows)[ ](nt)[ ](5.0)",$http_u_a)) {
$os = 'Windows 2000';
} else {
$os = 'Windows NT';
}
} else {
$os = 'Windows';
}
} elseif(stristr($http_u_a,"linux")) {
$os = 'Linux';
} elseif(stristr($http_u_a,"unix")) {
$os = 'Unix';
} elseif(stristr($http_u_a,"mac") || stristr($http_u_a,"ppc")) {
$os = 'MacOS';
} else {
$os = 'Onbekend';
}
return $os;
}
?>
<?php
function os( ) {
if ( eregi ( "(win|windows)[ ]*((nt)*[ /]*([0-9]+(.?[0-9]+))*)" , $http_u_a , $regs ) ) {
if ( eregi ( "(win|windows)[ ](95)" , $http_u_a ) ) { $os = 'Windows 95' ;
} elseif ( eregi ( "(win|windows)[ ](98)" , $http_u_a ) ) { $os = 'Windows 98' ;
} elseif ( eregi ( "(win|windows)[ ](me)" , $http_u_a ) ) { $os = 'Windows ME' ;
} elseif ( eregi ( "(win|windows)[ ](nt)" , $http_u_a ) ) { if ( eregi ( "(win|windows)[ ](nt)[ ](5.1)" , $http_u_a ) ) { $os = 'Windows XP' ;
} elseif ( eregi ( "(win|windows)[ ](nt)[ ](5.0)" , $http_u_a ) ) { $os = 'Windows 2000' ;
} else {
$os = 'Windows NT' ;
}
} else {
$os = 'Windows' ;
}
} elseif ( stristr ( $http_u_a , "linux" ) ) { $os = 'Linux' ;
} elseif ( stristr ( $http_u_a , "unix" ) ) { $os = 'Unix' ;
$os = 'MacOS' ;
} else {
$os = 'Onbekend' ;
}
return $os ;
}
?>
En met <?=os()?> of <?php echo os(); ?> krijg je dan het OS.
Citaat:
kbedoel wel de OS van de client
Is hier dan al ergens een reactie gegeven waar iets anders bedoeld werd?
Bart - 13/02/2006 19:30
PHP expert
@vinTage,
die site klopt alleen niet. Hij geeft verkeerde gegevens XD
MothZone - 13/02/2006 22:02
PHP ver gevorderde
@Fréderic: Je site geeft verkeerde gegevens.
Volgens de site surf ik met Firefox, ookal doe ik niet mee aan die rage en surf ik met Netscape.
Frederic - 13/02/2006 22:24
PHP ver gevorderde
Als Netscape in z'n stamp zet dat het een Mozilla is dan voel ik me vrij verplicht om er FireFox van te maken, ook al klopt dat in 0.5% van de gevallen niet. Dit is trouwens de code die ik gebruik, dus normaal zou netscape wel herkend moeten worden!
<?
//KNIP//
elseif(eregi('netscape6/([0-9]+\.[0-9]+\.[0-9]+)', $omschrijving, $regs)){
$browser = "Netscape ".$regs[1];
}
elseif (eregi('mozilla/([0-9]+\.[0-9]+)', $omschrijving, $regs)){
if($regs = 5.0){
$browser = "Mozilla FireFox 1.0";
}
else{
$browser = "Mozilla ".$regs[1];
}
}
//END KNIP//
<?
//KNIP//
elseif ( eregi ( 'netscape6/([0-9]+\.[0-9]+\.[0-9]+)' , $omschrijving , $regs ) ) { $browser = "Netscape " . $regs [ 1 ] ;
}
elseif ( eregi ( 'mozilla/([0-9]+\.[0-9]+)' , $omschrijving , $regs ) ) { if ( $regs = 5.0 ) {
$browser = "Mozilla FireFox 1.0" ;
}
else {
$browser = "Mozilla " . $regs [ 1 ] ;
}
}
//END KNIP//
Maar dat geheel offtopic ;)
Dieter_be - 13/02/2006 22:31 (laatste wijziging 13/02/2006 22:35)
Nieuw lid
firefox herken je niet alleen aan de mozilla in de user agent, maar ook doordat er gecko in vernoemd wordt
bij netscape is dat niet, tenzij er ook netscape ook in wordt vernoemd (zie http://devedge-...nt-strings /)
dus zo haal je de juiste gegevens uit de user agent
robijn - 14/02/2006 08:59 (laatste wijziging 14/02/2006 09:06)
Nieuw lid
Fréderic kan je even het hele Browser
scriptje on line zetten aub?
Maarten - 14/02/2006 17:27
Erelid
Fréderic z'n ding klopt wel niet helemaal:Citaat:
Mozilla FireFox 1.0 - Linux
Het is Firefox en niet FireFox , en ik heb ook geen 1.0 maar 1.5.
MothZone - 14/02/2006 18:03
PHP ver gevorderde
En in zijn code staat bij netscape "netscape6...", zet dan gewoon "netscape..." en het zal beter werken.
Richard - 14/02/2006 19:16
Crew algemeen
Als je host PEAR ondersteund, en het package Net_UserAgent_Detect is ondersteund, kun je die gebruiken:
<?php
// include het bestand
require_once 'Net/UserAgent/Detect.php';
// haal het OS op
$os = Net_UserAgent_Detect::getOSString();
?>
<?php
// include het bestand
require_once 'Net/UserAgent/Detect.php' ;
// haal het OS op
$os = Net_UserAgent_Detect:: getOSString ( ) ;
?>
hoop dat je er wat aan hebt;)
Gesponsorde links
Dit onderwerp is gesloten .