Tulis program terpendek yang akan mencoba untuk terhubung ke port terbuka pada komputer jarak jauh dan periksa apakah port tersebut terbuka. (Ini disebut Port Scanner )
Ambil input dari argumen baris perintah.
your-port-scanner host_ip startPort endPort
Asumsikan, startPort <endPort (dan endPort - startPort < 1000
)
Output: Semua port terbuka antara rentang itu harus spasi atau dipisah koma.
Jawaban:
sh / netcat, 39
Netcat melakukan pemindaian dan mengembalikan hasil dalam bentuk ini pada kesalahan standar:
cut
danxargs
ekstrak nomor port dan buat satu baris dari itu.Ingatkan saya untuk mematikan SMTP pada simpul itu.
sumber
Perl, 92
Perl 5.10 atau lebih baru, jalankan dengan
perl -E 'code here'
.Menggunakan regex untuk kompres selama itu
IO::Socket::INET
, lalueval
; pemformatan akhir dilakukan dengan interpolasi array.Atas permintaan, penjelasan lebih rinci. Untuk ungolf, pertama mari kita respace:
Baris sebelum
eval
mengganti 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: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
).sumber
sh / nmap / GNU grep / xargs - 36
Mengikuti spesifikasi input dan output:
sumber
nmap
dianggap sebagai jawaban yang valid di sini, tetapi jelas tidaksh
:)your-port-scanner host_ip startPort endPort
antarmuka, memanggil nmap ;-)nmap
dibundel dengan linux? : - \ saya tidak tahu itu ... :(Ruby - 85
sumber
BASH - 105
Dalam BASH murni (yaitu tidak ada nmap atau netcat).
Ketika menggunakan dengan alamat selain localhost, batas waktu cukup lama (dalam urutan menit) ketika bertemu dengan port tertutup sehingga beberapa fungsi batas waktu / alarm akan diperlukan dalam semua kemungkinan.
sumber
PHP - 70
sumber
$p++
dalam menyebutkan lain$p
, akan menghemat satu char ...Perl, 178
Saya baru mengenal Perl, semua saran tentang pemendekan dihargai!
sumber