HP Integrated Lights-Out 4 Manuel d'utilisation

Page 245

Advertising
background image

Le paramètre range contient une plage inclusive (au format hexadécimal) désignant
l'emplacement utilisé pour l'écriture des données.

Le paramètre data contient une chaîne hexadécimale correspondant aux données à écrire.

Le script doit transformer le paramètre file en un chemin relatif à ses répertoires de travail. Cela
peut nécessiter l'ajout du préfixe « ../ » ou la transformation d'une URL d'alias en chemin réel sur
le système de fichiers. Le script exige l'accès en écriture au fichier cible. Les fichiers image de
disquette doivent disposer des autorisations appropriées.

Exemple :

#!/usr/bin/perl

use CGI;
use Fcntl;

#
# Le préfixe est utilisé pour accéder du répertoire de travail courant vers
# l'emplacement du fichier image que vous essayez d'écrire
#
my ($prefix) = "c:/inetpub/wwwroot";
my ($start, $end, $len, $decode);

my $q = new CGI(); # Get CGI data

my $file = $q->param('file'); # File to be written
my $range = $q->param('range'); # Byte range to be written
my $data = $q->param('data'); # Data to be written

#
# Change le nom du fichier de manière appropriée
#
$file = $prefix . "/" . $file;

#
# Décode la plage
#
if ($range =~ m/([0-9A-Fa-f]+)-([0-9A-Fa-f]+)/) {
$start = hex($1);
$end = hex($2);
$len = $end - $start + 1;
}

#
# Décode les données (il s'agit d'une chaîne hexa de grande taille)
#
$decode = pack("H*", $data);

#
# Écrit les données dans le fichier cible
#
sysopen(F, $file, O_RDWR);
binmode(F);
sysseek(F, $start, SEEK_SET);
syswrite(F, $decode, $len);
close(F);

print "Content-Length: 0\r\n";
print "\r\n";

Utilisation de la fonction iLO Virtual Media 245

Advertising