Perl, 92
$_='use I;$h=shift;grep I->new("$h:$_"),shift..shift';
s/I/IO::Socket::INET/g;@_=eval;say"@_"
Perl 5.10 atau lebih baru, jalankan dengan perl -E 'code here'.
Menggunakan regex untuk kompres selama itu IO::Socket::INET, lalu eval; pemformatan akhir dilakukan dengan interpolasi array.
Atas permintaan, penjelasan lebih rinci. Untuk ungolf, pertama mari kita respace:
$_ = << 'EOC';
use I;
$h = shift;
grep I->new("$h:$_"), shift..shift;
EOC
s/I/IO::Socket::INET/g;
@_ = eval;
say "@_";
Baris sebelum evalmengganti semua (dua) kejadian 'I' dengan 'IO :: Socket :: INET', itu adalah trik standar golf Perl untuk mengurangi dampak pengidentifikasi panjang yang tidak dapat dihindari. Memberi penamaan sementara, kode ini kemudian setara dengan ini:
use IO::Socket::INET;
$h = shift;
$p1 = shift;
$p2 = shift;
@_ = grep IO::Socket::INET->new("$h:$_"), ($p1 .. $p2);
say "@_";
Singkatnya: baca argumen kisaran host dan port dari baris perintah; coba koneksi ke semuanya secara berurutan ( IO::Socket::INET->new()); simpan daftar mereka yang berhasil ( grep); tampilkan hasilnya dengan baik ( say).