2009-05-28 11 views
11

से बाहर निकलने की स्थिति ping कमांड का उपयोग करने की कोशिश करते समय मेरी पर्ल स्क्रिप्ट exit status से फंस जाती है।पिंग कमांड

+0

यह शायद http://serverfault.com पर है। –

उत्तर

9

पिंग उपयोगिता शून्य का एक निकास स्थिति अगर कम से कम एक प्रतिक्रिया निर्दिष्ट मेजबान की आवाज़ सुनाई दी रिटर्न; दो की स्थिति अगर संचरण सफल रहा था लेकिन कोई प्रतिक्रियाएं प्राप्त हुए थे; या (से) एक और मूल्य अगर एक त्रुटि हुई।

http://www.manpagez.com/man/8/ping

वास्तविक वापसी मान आपके सिस्टम पर निर्भर हो सकता है।

14

Google is your friend। यह कोड 1 साथ बाहर निकल जाएगा पिंग सब पर किसी भी उत्तर पैकेट प्राप्त नहीं करता है

हैं:

चौथा लिंक नीचे this जिसमें कहा गया है। यदि एक पैकेट गिनती और समय सीमा दोनों निर्दिष्ट हैं, और समय सीमा के समय तक गिनती पैकेट से कम प्राप्त होता है, तो यह कोड 1 के साथ भी बाहर निकल जाएगा। पर अन्य त्रुटि यह कोड 2 से निकलती है। अन्यथा यह कोड 0 साथ बाहर निकालता है। यह संभव हो तो एक मेजबान जीवित है या नहीं यह देखने के लिए बाहर निकलने के कोड का उपयोग करने में आता है।

  • सफल:: कोड 0
  • कोई जवाब नहीं: कोड 1
  • अन्य त्रुटियों:

परिणाम सूचीबद्ध करने के लिए कोड 2

ध्यान दें कि पेज जिनसे मैं लिंक कहते हैं, "लिनक्स/यूनिक्स पिंग कमांड", लेकिन अन्य प्रणालियों, या लिनक्स और यूनिक्स की शायद यह भी वेरिएंट, यह मान भिन्न हो सकता है।

यदि संभव हो, तो मैं यह सुनिश्चित करने के लिए सिस्टम पर जांच करूँगा कि आपके पास सही है।

0

कमांड लाइन से man ping आज़माएं। वापसी मान तल के पास सूचीबद्ध हैं।

+3

नहीं, वे नहीं हैं। उदाहरण के लिए जीएनयू पिंग 255 लौटने लगता है अगर आपने सभी पैकेट भेजने के लिए पर्याप्त समय नहीं दिया है। ऐसा लगता है कि कहीं भी दस्तावेज नहीं किया गया है। –

9

यह आपके ओएस पर कुछ परीक्षण करने लायक है। ई।पर OSX जी

समाधान योग्य होस्ट

ping -c 1 google.com ; echo $? 

जवाब है जो:

PING google.com (173.194.38.14): 56 data bytes 
64 bytes from 173.194.38.14: icmp_seq=0 ttl=51 time=16.878 ms 

--- google.com ping statistics --- 
1 packets transmitted, 1 packets received, 0.0% packet loss 
round-trip min/avg/max/stddev = 16.878/16.878/16.878/0.000 ms 

रिटर्न

0 

समाधान योग्य मेजबान जो नीचे है/पिंग का जवाब नहीं है

ping -c 1 localhost ; echo $? 

जवाब:

PING stuart-woodward.local (127.0.0.1): 56 data bytes 

--- stuart-woodward.local ping statistics --- 
1 packets transmitted, 0 packets received, 100.0% packet loss 

रिटर्न:

2 

गैर समाधान योग्य मेजबान

ping -c 1 sdhjfjsd ; echo $? 

जवाब:

+०१२३५१६४१०
ping: cannot resolve sdhjfjsd: Unknown host 

रिटर्न:

68 
0

सफल संबंध सदैव वापस आ जाएगी कोड 0, जबकि विफल कनेक्शन हमेशा कोड 1 और ऊपर वापस आ जाएगी।

इस बाहर इस स्निपेट

#!/bin/bash 
light_red='\e[1;91m%s\e[0m\n'      
light_green='\e[1;92m%s\e[0m\n'     
ping -c 4 -q google.comz       
if [ "$?" -eq 0 ]; then       
    printf "$light_green" "[ CONNECTION AVAILABLE ]" 
else            
    printf "$light_red" "[ HOST DISCONNECTED ]"  
fi 
0

तुम भी ध्यान में रखना चाहिए कि यदि उदाहरण के लिए पिंग एक 'नेटवर्क के पहुंच' ICMP जबाब प्राप्त करता है, यह उत्तर के रूप में गिना जाएगा एक इस प्रकार सफलता रिटर्न की जांच के लिए कोशिश स्थिति 0 (विंडोज़ पर सिग्विन पिंग के साथ परीक्षण)। तो मेजबान जीवित है और आईएमओ एक बग परीक्षण के लिए वास्तव में उपयोगी नहीं है।

संबंधित मुद्दे