IP アドレスのリストを、対応するユーザー名、電子メール アドレス、および国とともに 1 行ずつ出力するスクリプトが必要です。コマンドを実行するために複数の IP アドレスを取得するにはどうすればよいですか? ループを実行しようとしましたが、IP アドレスが 1 行しか表示されませんでした。出力を次のようにしたいと思います。
1 | login | emailadd@yahoo.com | 160.79.208.82 | United States
16 | login1 | emailadd@yahoo.com | 61.95.83.10 | Italy
23 | login2 | emailadd@gmail.com | 81.48.63.93 | Australia
36 | login3 | emailadd@yahoo.com | 38.117.170.82 | Japan
51 | login4 | emailadd@gmail.com | 2.233.30.85 | Mexico
これが私のコードです:
#!/usr/bin/perl -w
use lib '~/lib';
use strict;
use Net::IPInfoDB;
my $g = Net::IPInfoDB->new;
$g->key(api_key);
my $login = '1 | login | emailadd@yahoo.com | 160.79.208.82
16 | login1 | emailadd@yahoo.com | 61.95.83.10
23 | login2 | emailadd@gmail.com | 81.48.63.93
36 | login3 | emailadd@yahoo.com | 38.117.170.82
51 | login4 | emailadd@gmail.com | 2.233.30.85';
$login =~ /(\d+\.\d+\.\d+\.\d+)/;
my $city = $g->get_city("$1");
my $addr = $g->get_country("$1");
printf "$login | (%s, %s)\n",
$city->city_name, $addr->country_name;