/ / ipad4 और ipv6 - perl दोनों पर fakeidentd.pl स्क्रिप्ट सुनें

fakeddd.pl स्क्रिप्ट दोनों ipv4 और ipv6 - 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:* LISTEN

उत्तर:

जवाब के लिए 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