Merhaba,
Bir sistem üzerinde port dinlemek ve bağlantı kabul etmek için basit bir perl script paylaşıyorum.
Bu scripti çalıştıracağımız sistem üzerinde herhangi bir portu dinlemeye geçirmek ve başka bir makineden telnet ile test etmek mümkün.
Böylece herhangi iki network arasında yada herhangi bir cihaz üzerinde ilgili port üzerinden iletişim olup olmadığını test edebileceksiniz.
Script, bağlantı kabul edecek makine (10.10.1.11) üzerinde, port no verilerek alttaki şekilde çalıştırılır,
c:\test>perl conntest.pl 8071
Bağlanacak makinede ise alttaki şekilde telnet client çalıştırılır,
c:\telnet 10.10.1.11 8071
Telnet çalıştırdığınız makinede alttaki çıktıyı göreceksiniz.
-----------------------------------------------------------------------------
Port 8071 Ayakta. Baglandiginiz Sistem : TRISTN0H408852
**Baglanti Kesiliyor**
Connection to host lost.
-----------------------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use Socket;
my $port = shift or die "\nPort Belirtilmedi.\nKullanim : \"perl conntest.pl 8088\"";
my $protocol = getprotobyname('tcp');
my $hostname = `hostname`;
# Soket Oluştur
socket(SERVER, PF_INET, SOCK_STREAM, $protocol) or die "socket: $!";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die "setsock: $!";
# Lokal Port
my $ipaddress = sockaddr_in($port, INADDR_ANY);
# Portu Dinlemeye Başla
bind(SERVER, $ipaddress) or die "bind: $!";
listen(SERVER, SOMAXCONN) or die "listen: $!";
# Bağlantıyı Kabul Et
my $client_addr;
while ($client_addr = accept(CLIENT, SERVER)) {
# Mesaj Bas, Bağlantı Kapa
print CLIENT "\nPort $port Ayakta. Sistem : $hostname\n*Baglanti Kesiliyor*";
close CLIENT;
}
Teşekkürler,
Cem Selmanoğulları