Problème connection WMI en php après hébergement [Résolu]

Signaler
Messages postés
7
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
24 août 2011
-
 gpsa1 -
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.

7 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
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é


Cordialement,

Kohntark -
Messages postés
14655
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 février 2020
139
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
---
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

+1 pour NHenry et la vérif: http://fr2.php.net/manual/fr/com.requirements.php

bonne après midi
Messages postés
7
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
24 août 2011

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 !
Messages postés
7
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
24 août 2011

Ok je comprends !! Tant pis je ne pourrais pas l'héberger alors !!

Merci pour vos réponses !!

bon courage !!
Messages postés
72
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
31 mai 2013
6
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)


cvfaf23@gmail.com merci pour l'aide