Я намагаюся оновити скрипт perl, який діє як ідентифікатор, щоб також слухати ipv6-сокет.
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket;
use IO::Socket::IP;
my($client,$socket);
if (!defined($ARGV[0])) { die "Please supply identn"; }
my $ident=$ARGV[0];
$socket = IO::Socket::IP->new(
"Domain" => "PF_INET6",
"Proto" => "tcp",
"LocalPort" => 113,
Reuse => 1,
"Listen" => 1) or die "Error: $!n";
print "using ident: $identn";
while ($client=$socket->accept()) {
my $host=$client->peerhost();
print "connection: ", $host . "n";
my $data = <$client>;
if ($data) {
print "$host recv: $datan";
$data =~ s/^s+//;
$data =~ s/s+$//;
$ident =~ s/^s+//;
$ident =~ s/s+$//;
print $client "$data : USERID : UNIX : $identn";
close $client;
}
}
undef $client if $client;
результати зовсім не задовольняють:
netstat -alpn | греп перл
tcp 0 0 0.0.0.0:113 0.0.0.0:* СПИСОК
Відповіді:
2 для відповіді № 1Здається, працює наступне:
$socket = IO::Socket::IP->new(
Domain => PF_INET6,
LocalHost => "::1",
"Proto" => "tcp",
"LocalPort" => 113,
Reuse => 1,
"Listen" => 1) or die "Error: $!n";
Результат:
# netstat -alpn | grep perl
tcp 0 0 ::1:113 :::* LISTEN 1357/perl