SORU
7 ŞUBAT 2011, PAZARTESİ


Uzaktan TCP port eğer kabuk betiği Test açın.

Doğru ise, belirli bir TCP bağlantı noktası uzak bir sunucu, bir Kabuk içinden üzerinde açık olup olmadığını test etmek için hızlı ve basit bir yöntem arıyorum.

Telnet komutu ile bunu başardım ve liman açıldığında gayet iyi çalışıyor, ama sadece orada asılı değil zaman aşımı yok gibi görünüyor

İşte bir örnek:

l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
  echo "Connection to $SERVER on port $PORT failed"
  exit 1
else
  echo "Connection to $SERVER on port $PORT succeeded"
  exit 0
fi

Ben de bir iyi bir yol, ya da bir şekilde zorla telnet için zaman aşımı vermezse Bağlan altında 8 saniye için örnek ve iade edebileceğim bir şey yakalamak Kabuk (dönüş kodu veya dize stdout).

IO kullanan Perl yöntemi biliyorum::Socket::INET ve bir bağlantı noktası testleri başarılı bir betik modülü yazdım ama mümkünse Perl kullanarak önlemek için tercih.

Not: Bu benim server çalıştıran bu gitmem gereken yere oldukça önemlidir

SunOS 5.10 Generic_139556-08 i86pc i386 i86pc

Herhangi bir yardım mutluluk duyacağız!

CEVAP
27 ŞUBAT 2012, PAZARTESİ


B. tarafından işaret olarak Rodos, nc iş yapacak. Daha kompakt bir şekilde kullanmak için:

nc -z <host> <port>

Bu şekilde nc sadece port açmak, başarı 0, 1 hatası ile çıkılıyor olup olmadığını kontrol edin.

Hızlı etkileşimli bir kontrol edin (5 saniye timeout):

nc -z -w5 <host> <port>; echo $?

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • Charles Griffin Gibson

    Charles Grif

    26 NİSAN 2006
  • Orson Wang

    Orson Wang

    28 EKİM 2006