Kaioshin12
Messages postés7Date d'inscriptionsamedi 6 mars 2010StatutMembreDernière intervention24 août 2011
-
24 août 2011 à 12:56
gpsa1 -
18 mai 2013 à 20:16
Bonjour à tous, j'espère être dans la bonne partie.
Voilà, je suis en train de me faire un petit utilitaire en php et WMI me permettant d'obtenir différentes informations sur mon PC (disque dur, OS, mémoire, carte graphique...) un peu comme Everest ou SIW.
J'ai donc ma fonction php avec ce code qui me permet d'obtenir les informations
$objLocator = new COM("WbemScripting.SWbemLocator");
$objService = $objLocator->ConnectServer();
$objWEBM = $objService->Get("Win32_DiskDrive");
//Le reste c'est le traitement, pas de soucis
Lorsque je lance ma page web en local (sous WampServer) : http://localhost/MyComputer/index.php, tout fonctionne très bien MAIS quand j'ai voulu héberger ma page chez SFr par exemple pour que je puisse l'exécuter depuis n'importe quel ordinateur, j'ai cette erreur : Fatal error: Class 'COM' not found in /var/www/m/my/myc/mycomputer.perso.sfr.fr/public_html/WMI.php on line 6
WMI.php :
function GetWMI($ClassWin32)
{
$objLocator = new COM("WbemScripting.SWbemLocator");
$objService = $objLocator->ConnectServer();
$objWEBM = $objService->Get($ClassWin32);
$objProp = $objWEBM->properties_;
$i=0;
foreach($objProp as $name)
{
$arrProp[$i]=$name;
$i++;
}
$objWEBMCol = $objWEBM->Instances_();
$i=0;
foreach($objWEBMCol as $name)
{
$arrWEBMCol[$i]=$name;
$i++;
}
foreach($arrWEBMCol as $objItem)
{
reset($arrProp);
$arrInstance = array();
foreach($arrProp as $propItem)
{
eval("\$value = \$objItem->" .$propItem->Name .";");
if(trim($value) != "")
{
$arrInstance[$propItem->Name] = trim($value);
}
}
foreach($arrInstance as $cle=>$valeur)
{
switch($ClassWin32)
{
case "Win32_DiskDrive":
$valeur=GetDiskDriveDetails($cle,$valeur);
break;
case "Win32_OperatingSystem":
$valeur=GetOSDetails($cle,$valeur);
break;
default:
break;
}
echo $cle.' : '.$valeur.'
';
}
echo '
';
}
}
Je ne comprends pas pourquoi ça marche en local et pas une fois hébergé ?
Je vous remercie d'avance pour votre aide.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 24 août 2011 à 18:06
Salut,
Je n'en suis pas certain mais à mon avis, si tu es en mutualisé, ces fonctionnalités (accès aux données du disque, mémoire, etc ...) ne seront pas dispo.
... reste à investir dans un dédié
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 24 août 2011 à 13:29
Bonjour,
A vérifier, mais avec Linux, je ne pense pas que COM soit dispo, donc tu développes surement sur Windows en local et Linux en distant, d'où l'erreur.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Kaioshin12
Messages postés7Date d'inscriptionsamedi 6 mars 2010StatutMembreDernière intervention24 août 2011 24 août 2011 à 17:35
Re bonjour,
Merci pour vos réponse rapide.
Si je comprends bien, en local je suis bien sous Windows donc pas de soucis, COM est bien trouvé.
En revanche une fois hébergé, COM n'est pas trouvé car le serveur d'hébergement chez SFR (puisque je l'ai pris comme exemple) est sous linux.
Donc même si j'utilise le même ordi et j'ouvre les 2 pages, une en local et une depuis l'hébergement, seule la première marchera ?
Je ne peux donc pas héberger le site ? y a-t-il un moyen d'accéder au COM de l'ordi qui ouvre la page ou bien ma page ne pourra s'afficher correctement que en local ??
Encore merci à vous !
Vous n’avez pas trouvé la réponse que vous recherchez ?
alvinemambele
Messages postés72Date d'inscriptionmardi 27 mai 2008StatutMembreDernière intervention31 mai 201315 29 août 2011 à 18:55
ton idée est bonne, mais il y a des astuces qui p t'aide :
1.veuillez aussi voir le langager qui agit du côté Client aulieu de la faire du côté serveur;
2. dans ton script php veuillez veirifier l'OS avant d'exécuter la suite de code.
bne chance!
Un orateur trop long est comme une horloge qui sonne les minutes!
j'aimerai bien de l'aide SVP
j'ai un site web ,,, et j'aimerai utiliser un fichier php
page.php (pour visiteur)
le code PHP : <?
include ("ip_track.php");
?>
ip_track.php (hébérger )
le code :
<?php
// Nom du fichier des logs
$fichier="ip-track.txt";
$fp=fopen("$fichier","a");
// Donne la date et l'heure française
$Jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$Mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$date = $Jour[date("w")]." ".date("d")." ".$Mois[date("n")]." ".date("Y");
$heure = gmdate("H \h i", mktime(date("H")+1,date("i")));
$fsz=filesize("$fichier");
// Récupère l'IP et le FAI du visiteur (même si proxy)
$ip_visiteur = (getenv("HTTP_X_FORWARDED_FOR") ? getenv("HTTP_X_FORWARDED_FOR") : getenv("REMOTE_ADDR"));
$fai_visiteur = gethostbyaddr("$REMOTE_ADDR");
// Reccupere le port
$port = $_SERVER['REMOTE_PORT'];
fseek($fp,$fsz);
// Reccuperer le login
$login=$_SERVER['PHP_AUTH_USER'];
// Reccupere données navigateur
$referer = getenv("HTTP_USER_AGENT");
// Enregistre les données
fputs($fp,"Le: $date à $heure\n | IP: $ip_visiteur | Port: $port | Login: $_SERVER | FAI du visiteur: $fai_visiteur | Navigateur: $referer");
fclose($fp);
// Infos perso
$email="monmail@monsite.com";
$titre="GPSA-Track Visiteurs | Nouveau visiteur | Info";
$messag="Un visiteur vient de passer sur notre site.
SECURITE INFORMATIQUE
Infos du concerné :
- Le : $date à $heure
- IP : $ip_visiteur
- Port : $port
- Login : $_SERVER
- FAI : $fai_visiteur
- Navigateur: $referer
Fin d'informations.";
?>
afin de pouvoir identifier toutes les visiteurs dans le site.
qui me donne les infos du visiteur comme :
identification du processeur (numero de serie usine )
identification disque dure (numero de serie ou mac adresse)
identification routeur (adresse mac outeur + adresse mac carte réseau)