my @lines = qx/ss -4ntuH|awk '{ip=\$6; sub(\/:[0-9]+\$\/, "", ip); print ip}'/;
perl -le 'for(`ss -4ntuH`){$_ = (split / +/)[5]; m/(.+):[0-9]/ ? print $1 : 0}'
ss -4ntuH|perl -lne '$_=(split/ +/)[5];/(.+):\d/?print$1:0'
my @IPs = map { my $f6 = (split m/\s+/, $_)[5]; ( split m/:/, $f6)[0] } qx/ss -4ntuh/;
my @IPs = map { (split m/[:\s]+/, $_)[5]; ) qx/ss -4ntuh/;
@adr = map { $_ = (split m/\s+/, $_)[5]; s/:\d+$//; $_ } qx/ss -4ntuH/;
2019-08-03T18:09:50 LinuxerAchtung: Das funktioniert nur mit IPv4 Adressen! IPv6 Adressen verwenden den : auch; dann eher mit s/:\d+$// den Port vom Ende abschneiden und hoffen, dass da immer ein Port steht.
1
2
3
4
5
6
7
8
9
[::1]:143
[::ffff:150.95.185.145]:9283
[::1]:36822
[::ffff:208.113.129.191]:24277
[::ffff:2.87.39.115]:36041
[::ffff:127.0.0.1]:32000
[::1]:143
[::1]:34556
[::ffff:95.91.138.109]:19579
2019-08-03T18:32:31 Linuxer
1
2
3
4
5
6
7
8
9
#!/usr/bin/env perl
use Data::Dumper;
use Linux::Proc::Net::TCP;
use Linux::Proc::Net::UDP;
my $table_tcp = Linux::Proc::Net::TCP->read;
my $table_udp = Linux::Proc::Net::UDP->read;
my @rem_address;
push (@rem_address, map {$_ = $_->rem_address;} $table_tcp->listeners);
print Dumper @rem_address;
2019-08-03T15:29:37 mikaWenn Ihr gar eine Lösung habt das ss(8) raus zu nehmen, wäre das super. Aber ich finde da kein Modul für...
QuoteIch lasse mir alle verbundenen entfernten IPv4-Adressen ausgeben ..
2019-08-04T07:43:50 rostiQuoteIch lasse mir alle verbundenen entfernten IPv4-Adressen ausgeben ..
Du suchst netstat
und Module https://metacpan.org/search?size=20&q=netstat
1 2 3 4
use Data::Dumper; use Parse::Netstat qw(parse_netstat); my $res = parse_netstat( output => join( "", `netstat -4ntu` ) ); print Dumper map { $_ = $_->{foreign_host} } @{ $res->[2]{'active_conns'} };