2012-08-08 49 views
1

我正在嘗試用perl創建遠程登錄腳本。我目前得到使用關閉回聲IO ::套接字:: INET

$var = <$client>; 
chomp $var; 

輸入數據。但是,我想在客戶端輸入一個密碼,我想隱藏在linux的方式與客戶端通過不附和什麼是輸入的密碼。有什麼辦法可以做到這一點?

編輯:

$serv = IO::Socket::INET->new ( 
Proto => 'tcp', 
LocalPort => $port, 
Listen => 10, 
Reuse => 1) 
|| die "Can't create server: $!"; 

while ($client = $serv->accept()) { 
eval { 
$client->autoflush(1); # Always remember to flush! 
$who = $client->peerhost; 
print STDERR "Connection from $who\n"; 
print $client hostname . " login: "; 
$usr = <$client>; 
chomp $usr; 
$usr =~ s/\W//g; 
print STDERR "User $usr\n"; 
die unless (length $usr < 20 && length $usr > 1); 
print $client "Encrypted Password: "; 
$pass = <$client>; 
chomp $pass; 
die unless (length $pass < 20 && length $pass > 1); 
print STDERR "$who: Pass $pass\n"; 
}; 
close $client; 
} 
+1

套接字不呼應。這與套接字無關。 – ikegami 2012-08-08 04:28:46

回答

0

這是本地控制檯回聲,無關你的插座。

有很多方法來關閉控制檯回聲使用Perl,但我最喜歡的是IO::Termios(也許我有偏見,因爲我寫的;))

use IO::Termios; 
my $stdin = IO::Termios->new(\*STDIN); 
$stdin->setflag_echo(0);