PDA

Visualizza la versione completa : [perl] opendir con user e password


Alberto
19-11-2009, 10:04
per aprire una cartella da una macchina ad un'altra, dove devo però inserire user password ad ogni connessione perché per motivi di sicurezza non posso salvarli, posso usare opendir e si come, perché non conosco il modo di passargli user e pass, o devo usare qualcos'altro?

shishii
19-11-2009, 18:43
su che sistema operativo operi?

Alberto
20-11-2009, 08:39
windows server 2000 e 2003

shishii
22-11-2009, 21:23
allora mi dispiace, non posso aiutarti, poichè opero quasi esclusivamente su sistemi *NIX

Alberto
23-11-2009, 09:04
Originariamente inviato da shishii
allora mi dispiace, non posso aiutarti, poichè opero quasi esclusivamente su sistemi *NIX


Ho visto che c'è il modulo smbclient, che dovrebbe permettermi di fare ciò di cui ho bisogno, però non riesco dal PPM ad aggiungere il repository di CPAN, mi servirebbe l'url del repository che non trovo da nessuna parte.

shishii
23-11-2009, 23:02
Il repository è su:

http://search.cpan.org/

ma se ppm non te lo scarica in genere vuol dire che non funziona con windows.

così mi pare che sia per questi moduli:

http://search.cpan.org/~alian/Filesys-SmbClient-3.1/SmbClient.pm
http://search.cpan.org/~alian/Filesys-SmbClientParser-2.7/SmbClientParser.pm

ma questo forse funzionerà:

http://search.cpan.org/~kerisman/App-Smbxfer-0.01/lib/App/Smbxfer.pm

Alberto
24-11-2009, 16:32
Originariamente inviato da shishii
ma questo forse funzionerà:

http://search.cpan.org/~kerisman/App-Smbxfer-0.01/lib/App/Smbxfer.pm

Intanto grazie, sto provando, ma non sembra funzionare o forse sono io che sbaglio qualcosa...


#C:\Perl\bin

package App::Smbxfer;

$credentials_file = <C:/Perl/script/credential.txt>;

my ($username, $password, $domain) = credentials( $credentials_file );

my ($local_path, $remote_smb_path_spec) = validated_paths(
SMB => $smb,
SOURCE => "C:/Perl/script/test.txt",
DEST => "pdf_portale",
SOURCE_IS_LOCAL => $whether_or_not_source_is_local_path
);

Undefined subroutine &App::Smbxfer::credentials called at C:\Perl\script\connection.pl

shishii
24-11-2009, 17:48
Come lo hai installato?

tieni presente che i moduli perl in genere si usano invocandoli così:

use App::Smbxfer;

poi questo è sicuramente sbagliato:
$credentials_file = <C:/Perl/script/credential.txt>;

dovresti scrivere:

$credentials_file = "C:/Perl/script/credential.txt";

i segni <> sono usati per dire che dentro ci devi mettere tuoi dati, e quello che è stato usato è solo un esempio.

Alberto
25-11-2009, 09:04
ho seguito il README ed ho effettuato l'installazione con il built


INSTALLATION

To install this module, run the following commands:

perl Makefile.PL
make
make test
make install

Alternatively, to install with Module::Build, you can use the following commands:
perl Build.PL
./Build
./Build test
./Build install


DEPENDENCIES

Exporter
Getopt::Long
IO::Prompt
Filesys::SmbClient
Test::More
Test:: Differences
File::Find
File::Temp

con il Makefile.PL ottengo un file Makefile , ma mi da errore andando avanti con i passi successivi (non trova il comando make), con il built arrivo alla fine, ma mi sono accorto che mi mancano due moduli dipendenti IO::Prompt e Filesys::SmbClient


si, lo so, anch'io scrivo use nome modulo, avevo seguito un'esempio trovato in rete...

in un altro programma funzionante e che utilizzo ho usato <> per dichiare il nome file da utilizzare :master:

shishii
25-11-2009, 20:36
La procedura d'installazione descritta si usa su linux e simili.

Su windows o usi ppm o una procedura complessa per la quale devi avere il succedaneo di "make" che mi pare si chiami "nmake" per windows.

<> esistono in perl e si usano in casi particolari, ad esempio i file handle. Nel caso tuo erano nel file di spiegazione come esempio. Usa "..." o anche '...' quando è il caso.

Loading