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 -wuse strict;use Socket;my $port = shift or die "\nPort Belirtilmedi.\nKullanim : \"perl conntest.pl 8088\"";my $protocol = getprotobyname('tcp');my $hostname = `hostname`;# Soket Oluştursocket(SERVER, PF_INET, SOCK_STREAM, $protocol) or die "socket: $!";setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die "setsock: $!";# Lokal Portmy $ipaddress = sockaddr_in($port, INADDR_ANY);# Portu Dinlemeye Başlabind(SERVER, $ipaddress) or die "bind: $!";listen(SERVER, SOMAXCONN) or die "listen: $!";# Bağlantıyı Kabul Etmy $client_addr;while ($client_addr = accept(CLIENT, SERVER)) {# Mesaj Bas, Bağlantı Kapaprint CLIENT "\nPort $port Ayakta. Sistem : $hostname\n*Baglanti Kesiliyor*";close CLIENT;}
Teşekkürler,
Cem Selmanoğulları