让fakeidentd.pl脚本同时监听ipv4和ipv6

时间:2018-03-09 13:55:17

标签: perl

我试图更新充当identd的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 ident\n"; }
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: $ident\n";
while ($client=$socket->accept()) {
        my $host=$client->peerhost();
        print "connection: ", $host . "\n";
        my $data = <$client>;
        if ($data) {
                print "$host recv: $data\n";
                $data =~ s/^\s+//;
                $data =~ s/\s+$//;
                $ident =~ s/^\s+//;
                $ident =~ s/\s+$//;
                print $client "$data : USERID : UNIX : $ident\n";
                close $client;
        }
}
undef $client if $client;

结果根本不令人满意:

  

netstat -alpn | grep perl
  tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN

1 个答案:

答案 0 :(得分:2)

以下似乎有效:

@android.arch.persistence.room.PrimaryKey(autoGenerate = true)
protected long rowId;

结果:

$socket = IO::Socket::IP->new(
        Domain    => PF_INET6,
        LocalHost => "::1",
        "Proto" => "tcp",
        "LocalPort" => 113,
        Reuse => 1,
        "Listen" => 1) or die "Error: $!\n";