जांचें कि कंप्यूटर इंटरनेट से जुड़ा है या नहीं


49

एक प्रोग्राम लिखें, जिसके अनुसार स्क्रिप्ट की इंटरनेट तक पहुंच है, एक आउटपुट का उत्पादन करता है जो कि "ट्रू / फल्सी" है । आप कोशिश कर सकते हैं और किसी भी मौजूदा साइट से कनेक्ट कर सकते हैं, अपने स्वयं के विवेक पर (एक छायादार साइट का उपयोग न करें जिसमें केवल 10% अपटाइम है - 80% वार्षिक अपटाइम से ऊपर रखने की कोशिश करें)। यदि साइट नीचे है, तो आपके प्रोग्राम को काम नहीं करना है।

यह एक स्टैंडअलोन प्रोग्राम या फ़ंक्शन होना चाहिए । इसे प्राप्त करने के लिए आप मानक पुस्तकालय के बाहर पुस्तकालयों का उपयोग कर सकते हैं। मानक खामियों को मना किया जाता है। यह कोड गोल्फ है, इसलिए सबसे छोटी बाइट-काउंट जीत वाला कोड।

उदाहरण छद्मकोश:

function a:
    try:
        connect to internet 
        return 1
    catch error:
        return 0

कोड गोल्फ पर यह मेरी पहली पोस्ट है, इसलिए यदि यह किसी भी तरह से किसी भी नियम का उल्लंघन करता है या एक ठग है, तो कृपया मुझे सतर्क करें।

EDIT: कई सुझावों के कारण, मैंने UTF-8 बाइट काउंट प्रतिबंध को हटा दिया है


4
के बजाय trueऔर false, मैं हमारे में से किसी की इजाजत दी सलाह देते हैं truthy और falsiness के लिए चूक । इसके अलावा, इंटरनेट से, क्या आप अपने स्थानीय नेटवर्क के बाहर नेटवर्क से मतलब रखते हैं? अगर Google डाउन है या कोई अन्य बड़ी साइट है तो क्या अभी भी प्रोग्राम्स को काम करना है?
ब्लू

3
बाइट काउंट आमतौर पर भाषा के देशी या सबसे सुविधाजनक एन्कोडिंग में किया जाता है, जो हमेशा UTF-8 नहीं होता है। जब तक आपके पास UTF-8 को लागू करने का एक अच्छा कारण नहीं है, मुझे लगता है कि एन्कोडिंग को प्रोग्रामर की पसंद पर छोड़ दिया जाना चाहिए
लुइस मेंडो

4
मैं देख रहा हूँ लगभग हर कोई उपयोग कर रहा है g.gl/http://g.gl/ है, लेकिन to./http://to./ एक बाइट कम हो रहा है (नहीं सभी भाषाओं यह एक वैध यूआरएल के रूप में के माध्यम से देखें)।
केविन क्रूज़सेन

9
कमोडोर बेसिक:PRINT "0"
मार्क

3
जिस मशीन पर मैं यह टाइप कर रहा हूं, वह तकनीकी रूप से "इंटरनेट" का एक हिस्सा है, क्योंकि इसे बाहर से (NAT और पोर्ट अग्रेषण के माध्यम से) एक्सेस किया जा सकता है। तो, अगर आप यह सोचते हैं, "इंटरनेट का पता लगाने" स्क्रिप्ट शायद "सच" करने के लिए कम हो सकती है :)
zeppelin

जवाबों:


29

बैश ( डंसुटिल्स के साथ ), 3 बाइट्स

के लिए एक DNS अनुरोध भेजता है। (DNS रूट), एक्जिट कोड सफलता के लिए 0 और अन्यथा 0 है।

golfed

dig

परीक्षा

% dig >/dev/null; echo $?;        
0

% nmcli nm wifi off
% dig >/dev/null; echo $?;
9

अस्वीकरण

यह स्पष्ट रूप से केवल तभी काम करेगा जब आपका DNS सर्वर प्रदाता के नेटवर्क में बैठा हो, अर्थात "इंटरनेट" में (जैसा कि आपका प्रदाता नेटवर्क सामान्य रूप से इसका एक हिस्सा है), या यदि आपका सिस्टम सार्वजनिक DNS सर्वर (जैसे 8.8.8.8) का उपयोग कर रहा है Google से, जो एंड्रॉइड आधारित सिस्टम का उपयोग करता है), अन्यथा, आप स्थानीय लैन सर्वर (या लोकलहोस्ट) से कैश्ड कॉपी प्राप्त कर सकते हैं ।

लेकिन मुझे लगता है कि यह नियमों के खिलाफ नहीं है, क्योंकि स्पष्ट रूप से एक से अधिक सिस्टम हैं जहां यह इरादा के अनुसार काम करता है।

इंटर-कैशिंग प्रॉक्सी के कारण प्योर-एचटीटीपी तरीके भी झूठी सकारात्मकता दे सकते हैं, और हर जगह काम करने की गारंटी नहीं होती है, इसलिए यह तरीका कुछ अनूठा नहीं है।

थोड़ा और अधिक विश्वसनीय संस्करण, 8 बाइट्स

dig +tra

(@ Dig ital Tra uma को थोड़ी श्रद्धांजलि !)

"ट्रेस मोड" को सक्षम करता है, जो किसी भी कैश मुद्दों से बचने के लिए स्वयं द्वारा पुनरावर्ती खोज करने के लिए खुदाई करेगा ( https://serverfault.com/a/778830 देखें )।


उद्धरण man dig: जब तक कि यह एक विशिष्ट नाम सर्वर को क्वेरी करने के लिए नहीं कहा जाता है, तब तक खुदाई /etc/resolv.conf में सूचीबद्ध प्रत्येक सर्वर की कोशिश करेगी । यदि कोई उपयोग करने योग्य सर्वर पते नहीं मिलते हैं, तो खुदाई स्थानीय होस्ट को क्वेरी भेज देगी ।
टाइटस

@ टिट्स, हाँ जो सही है, मेरे उत्तर का "अस्वीकरण" भाग देखें, लेकिन जब तक आपका DNS सर्वर (आपके resolv.conf में निर्दिष्ट) आपके प्रदाता के पक्ष में है, यह सिर्फ अच्छा काम करता है।
ज़ेप्लेन

आपका समाधान एक गैर-डिफ़ॉल्ट इंस्टॉल पर निर्भर करता है; मैं समझता हूं कि एक खामियों का फायदा उठाना है। आप अभी भी दो अतिरिक्त बाइट्स के साथ जीत सकते हैं।
टाइटस

1
> आपका समाधान एक नॉन-डिफॉल्ट इंस्टॉल नोप पर निर्भर करता है, यह ठीक उसी तरह है जैसे यह मेरी मशीन पर काम करता है (और यह पहले से ही मेट्रिक्स के अनुसार पर्याप्त है)। इसके अलावा, आपके प्रदाता के DNS सर्वर का उपयोग करना, वास्तव में एक बहुत ही सामान्य सेटअप है (और यह सामान्य रूप से आपके resolv.conf में भी होगा)।
ज़ेप्लेन

2
डिफाल्ट सेटलेंस इस बात पर निर्भर करता है कि आपने इंस्टॉल के समय किन सेटिंग्स का उपयोग किया था यदि आपने डीएचसीपी का उपयोग करके नेटवर्क को कॉन्फ़िगर किया है तो resolv.conf शायद आपके राउटर पर इंगित करता है। यदि आप मैन्युअल रूप से नेटवर्किंग कॉन्फ़िगर करते हैं, तो आपके पास जो भी DNS सर्वर नामांकित है, वह होगा।
जैसन

19

बैश + जीएनयू के बर्तन, 8

  • 5 बाइट्स ने @Muzer को धन्यवाद दिया।
wget to.

अन्य शेल उत्तर रिटर्न कोड की जांच करते हैं और तदनुसार कुछ स्टेटस आउटपुट को इको करते हैं। यह अनावश्यक है। शेल रिटर्न कोड पहले से ही एक प्रयोग करने योग्य सत्य / फाल्सी कोड है और $?पैरामीटर में सुलभ है जो बैश के लिए मुहावरेदार है। रिटर्न कोड 0 का मतलब सच है। रिटर्न कोड> 0 का अर्थ है गलत।

उपयोग में:

ubuntu@ubuntu:~$ wget to.
--2017-01-13 09:10:51--  http://to./
Resolving to. (to.)... 216.74.32.107, 216.74.32.107
Connecting to to. (to.)|216.74.32.107|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11510 (11K) [text/html]
Saving to: index.html.6

index.html.6        100%[===================>]  11.24K  --.-KB/s    in 0.04s   

2017-01-13 09:10:51 (285 KB/s) - index.html.6 saved [11510/11510]

ubuntu@ubuntu:~$ echo $?
0
ubuntu@ubuntu:~$ sudo ifconfig ens33 down
ubuntu@ubuntu:~$ wget to.
--2017-01-13 09:11:00--  http://to./
Resolving to. (to.)... failed: Temporary failure in name resolution.
wget: unable to resolve host address to.’
ubuntu@ubuntu:~$ echo $?
4
ubuntu@ubuntu:~$ sudo ifconfig ens33 up
ubuntu@ubuntu:~$ # Local network up, upstream link down
ubuntu@ubuntu:~$ wget to.
--2017-01-13 09:11:34--  http://to./
Resolving to. (to.)... failed: Name or service not known.
wget: unable to resolve host address to.’
ubuntu@ubuntu:~$ echo $?
4
ubuntu@ubuntu:~$ 

2
एक डोमेन का उपयोग करें जैसे to.कि 8.8.8.8, बहुत से बचाने के लिए।
मुजेर

@Muzer हां - धन्यवाद
डिजिटल ट्रॉमा

2
@Muzer जब तक कोई स्थानीय नहीं toहै जिसे खोजने के लिए रिज़ॉल्वर को कॉन्फ़िगर किया गया है, यह अभी भी सही पर जाएगा (और शायद एक स्थानीय को पिंग करने में सक्षम है इंटरनेट से जुड़ा होनाto पर्याप्त है )
क्रिश्चियन सेवर्स

2
@Muzer ठीक है, toकभी-कभी काम करता है और कभी-कभी नहीं। मुझे लगता है कि कुछ कैशिंग चल रहा है। मैं to.सिर्फ सुरक्षा के लिए उपयोग करूँगा ।
डिजिटल ट्रामा

4
वह एक मान्य डोमेन क्यों है?
कोस

9

बैच, 8 बाइट्स

ping to.

pingसेट हो जाएगा ERRORLEVELकरने के लिए 1करता है, तो पता है या नहीं सुलझाया जा सकता है पर पहुंच गया।


7

05AB1E , 11 9 बाइट्स

2 बाइट्स को "से" पर सहेजा गया। ev3commander के सौजन्य से

…to..wgX›

अगर http: // पर सामग्री की लंबाई की जाँच करता है
.wत्रुटि पर 1. रिटर्न 0 से अधिक है ।


1
हमेशा एक +1 05AB1E उत्तर के लिए
वॉरसडॉटन

@WorseDoughnut और वह क्यों है?
mbomb007

3
@ mbomb007 जब से अदनान ने इस पर काम करना और इसे पोस्ट करना शुरू किया है, तब से यह भाषा का बहुत बड़ा प्रशंसक है; यह निश्चित रूप से आकर्षक भाषा है।
वॉरसडॉटनट

1
@WorseDoughnut जवाब में पहले से ही हाइपरलिंक है।
mbomb007

आप से कनेक्ट नहीं कर सकते हैं। एक बाइट बचाने के लिए?
ev3commander

5

MATL , 15 14 बाइट्स

एक बाइट ने केविन क्रूज़सेन के सुझाव के लिए धन्यवाद को बचाया

'http://to.'Xi

आउटपुट STDOUT के माध्यम से है। यह एक गैर-रिक्त स्ट्रिंग प्रदर्शित करता है जिसमें गैर-शून्य चार्ट (जो सत्य है) अगर इंटरनेट कनेक्शन है; और अगर कोई कनेक्शन नहीं है तो कुछ भी नहीं दिखाता है (जो मिथ्या है)।

इसे ऑनलाइन परीक्षण नहीं किया जा सकता है क्योंकि Xiऑनलाइन दुभाषियों में इसकी अनुमति नहीं है।

व्याख्या

'http://to.'  % Push this string
Xi            % Return contents of that URL as a string. If there is no Internet
              % connection this gives an error, with no output on STDOUT

क्या आप अपने आप urlread('http://g.gl')को एक ठीक जवाब मानते हैं ? कनेक्शन डाउन होने पर यह कार्यक्षेत्र को खाली करने में त्रुटि करेगा। यह एक त्रुटि संदेश प्रदर्शित करेगा, लेकिन तकनीकी रूप से यह STDERR के लिए है ...? मुझे लगा कि यह थोड़ा खिंचाव था, इसलिए मैंने इसे इस तरह से किया । लेकिन लंघन tryअपने कोड के रूप में एक ही परिणाम देने के लिए लगता है, या? तुम खाली छोड़ दो तुम भी नहीं? वैसे इसका अच्छा जवाब ... :)
स्टीवी ग्रिफिन

@StewieGriffin धन्यवाद! हां, मुझे लगता urlread('http://g.gl')है कि मान्य है (और जैसा मेरा कोड होता है) वैसा ही होता है, क्योंकि STDERR डिफ़ॉल्ट रूप से नजरअंदाज कर दिया जाता है, और MATLAB में एक खाली STDOUT झूठा है
लुइस मेंडो

1
ftpइसके बजाय यह काम करेगा http- एक और बाइट बचाएं?
फ्लोरिस

1
@Floris यहाँ भी आपको देखकर अच्छा लगा! दुर्भाग्य से ftpउस साइट के लिए काम करने के लिए प्रतीत नहीं होता है
लुइस मेंडो

1
नमस्कार @LuisMendo मैं कभी-कभी अन्य साइटों को भी प्रोवाइल करता हूं ... बहुत बुरा एफटीपी काम नहीं करता है!
फ्लोरिस

5

बैश 66 62 21 बाइट्स

ping -c1 g.gl echo $?

URL छोटा करने की टिप के लिए धन्यवाद @Alex L.

Ungolfed संस्करण:

r=$(ping -c1 g.gl)
if [ $? -ne 0 ];
 then echo "0"
else echo "1"
fi

यह बैश में मेरा पहला जवाब है, मुझे यकीन नहीं है कि मैंने स्क्रिप्ट को काफी छोटा कर दिया है।


मुझे लगता है कि आप google.com की तुलना में एक छोटे URL का उपयोग कर सकते हैं, जो आपको कोड को छोटा करने की अनुमति देगा। कुछ इस तरह जी.जी.
हाइपरन्यूट्रिनो

3
आप भी echo $?बयान के बजाय सिर्फ उस पूरे के लिए सक्षम होना चाहिए ।
SomethingDark

4
आपने ;गोल्फ लाइन में "कुछ" याद किया ।
इपोर सिरकार

@IporSircer धन्यवाद। :) @SomethingDark हैलो, echo $? एक प्रिंट 0अगर सफलता, वरना यह एक देता है 2इस मामले में। मैंने कार्यान्वयन के स्रोत कोड पर ध्यान नहीं दिया है, pingलेकिन मैं मान रहा हूं, स्टेशन के आधार पर अलग-अलग रिटर्न कोड हैं। इसलिए, मैंने if elseरणनीति का इस्तेमाल किया ।
हाबिल टॉम

@AbelTom - यह तर्क दिया जा सकता है कि 0 सत्य है और गैर-0 गलत है।
SomethingDark

5

आर, 20 बाइट्स

curl::has_internet()

curlपैकेज में इस कार्य के लिए एक कार्य है ।


1
+1 अच्छा लगता है। मेरे जैसे जिज्ञासु लोगों के लिए, यह कार्य इस प्रकार से लागू किया गया है:function() !is.null(nslookup("r-project.org", error = FALSE))
प्लाननैपस

समतुल्य गणना: httr::url_ok('g.gl')(यद्यपि पदावनत)।
जोनाथन कैरोल

5

जावा, 72 बाइट्स

a->new java.net.InetSocketAddress("to.",80).getAddress().isReachable(9);

3
आपको पूरी तरह से योग्य नाम निर्दिष्ट करना होगाjava.net.InetSocketAddress

4

पर्ल, 15 बाइट्स

print`curl to.`

साथ दौड़ो:

perl -e 'print`curl to.`' 2> /dev/null

curlआउटपुट पर सामान है STDERR, उन्हें बुरा मत मानना। यदि कंप्यूटर में इंटरनेट तक पहुंच है, तो यह html (सच्चाई) की कुछ पंक्तियों को प्रिंट करेगा, अन्यथा, यह कुछ भी नहीं छपाएगा (झूठा)।

@ केविन क्रूज़सेन के लिए धन्यवाद to.(मेरे पिछले के बजाय b.io) का उपयोग करके 1 बाइट्स को बचाया।


क्या आप बैश करने और हटाने के लिए स्विच नहीं कर सकते print?
ब्लूराजा - डैनी पफ्लुगुएफ्ट

1
@ BlueRaja-DannyPflughoeft Yup, यह काम करेगा (हालांकि पहले से ही जवाब में बैश है (हालांकि वे wgetइसके बजाय उपयोग करते हैं curlलेकिन यह एक ही बात है)।
दादा

4

सी #, 87 बाइट्स

_=>{try{new System.Net.WebClient().OpenRead("http://g.gl");return 1;}catch{return 0;}};

यदि एक अपवाद को गलत माना जाता है, जो मुझे नहीं लगता कि यह है, तो यह 65 बाइट्स है:

_=>new System.Net.WebClient().OpenRead("http://g.gl").ReadByte();

मैंने http://to.@KevinCruijssen द्वारा बताए गए लिंक का उपयोग करने की भी कोशिश की, लेकिन यह काम नहीं कर पाया।


4

8 , 23 21 बाइट्स

केविन क्रूज़सेन के सुझाव और मेरी खोज के लिए दो बाइट्स ने बचा लिया :http: // के रूप में अच्छी तरह से काम करने के लिए लगता हैhttp: // से । (एक और बाइट की बचत)

"http://to" net:get .

यदि साइट http: // तक पहुंचा जा सकता है, तो यह प्रिंट करता है true। अन्यथा यह प्रिंट करता है false। यह स्टैक पर प्राप्त डेटा को छोड़ देता है।


1
टीओएस का मतलब टी सेशन रों कील। मुझे लगता है कि इसका मतलब है कि यह सिर्फ स्टैक पर डेटा छोड़ता है।
रोमन ग्रैफ

ये सही है। मैंने अपनी व्याख्या में सुधार किया। धन्यवाद।
कैओस मैनर

@ ev3commander क्या आपने http: // से कोशिश की है ? यह मेरे मामले में काम करता है (मैं एक अपाचे 2 उबंटू डिफ़ॉल्ट पृष्ठ देखता हूं)। ऐसा लगता है कि इसमें शामिल होने की जरूरत नहीं है। ' या '/'
कैओस मैनर

3

MATLAB, 32 22 बाइट्स

urlread('http://g.gl')

स्पष्टीकरण:

यदि इंटरनेट कनेक्शन ऊपर है, तो इसका परिणाम ans(डिफ़ॉल्ट चर) सादे पाठ में संपूर्ण HTML-कोड के साथ एक स्ट्रिंग होगा (जो MATLAB में सच है)।

यदि इंटरनेट कनेक्शन डाउन है, तो यह STDERR को एक त्रुटि संदेश लिख देगा और कार्यक्षेत्र को खाली छोड़ देगा (जो MATLAB में गलत है)।

दुर्भाग्य से, पूर्ण यूआरएल पते कीurlread आवश्यकता है , इसलिए यह पर्याप्त नहीं है। 22 बाइट्स में से 11 इसलिए केवल यूआरएल-एड्रेस हैं।g.gl


वैकल्पिक दृष्टिकोण:

एक समाधान जो त्रुटि पकड़ता है और यदि कनेक्शन डाउन है तो कार्यक्षेत्र में 0 (भी गलत ) छोड़ दें :

0;try urlread('http://g.gl'),end

0;डिफ़ॉल्ट चर ansको आरंभ करता है 0, जो falseMATLAB में है। फिर हम tryयूआरएल को पढ़ने के लिए। यदि इंटरनेट कनेक्शन डाउन है, या नहीं तो कैरेक्टर ऐरे (जो trueMATLAB में है) यह एक त्रुटि देगा ।

हमें कुछ भी पकड़ने की आवश्यकता नहीं है, इसलिए हम अभी समाप्त करते हैं। यदि urlread कॉल सफल रहा, तो ansवेबसाइट की सामग्री के साथ एक लंबी स्ट्रिंग होगी, अन्यथा ans=0


3

बैश, 39 बाइट्स

exec 4<>/dev/tcp/to./80&&echo 1||echo 0

1
! exec 4<>/dev/tcp/to./80;echo $?
जैसन

या अगर आपको सही / गलत प्रिंट करने की आवश्यकता नहीं है, लेकिन इसे वापस कर सकते हैं,exec 4<>/dev/tcp/to./80
जैसन

3

जावास्क्रिप्ट ईएस 6, 71 43 बाइट्स

fetch``.then(a=>alert(1)).catch(a=>alert``)

यदि ऑनलाइन है तो अलर्ट 1, यदि ऑफ़लाइन है तो एक रिक्त स्ट्रिंग को अलर्ट करता है। कुछ बाइट्स से मुझे दाढ़ी बनाने में मदद करने के लिए पैट्रिक रॉबर्ट्स का धन्यवाद

पुराना संस्करण

_=>fetch('http://enable-cors.org').then(a=>alert(a)).catch(a=>alert(0))

अलर्ट [object Reponse]करता है, तो ऑनलाइन, अलर्ट 0करता है, तो ऑफ़लाइन

कोड स्निपेट को हटा दिया, यह काम नहीं करता है क्योंकि यह कॉर्स के बिना एक अलग डोमेन से लोड होता है, लेकिन यह ब्राउज़र कंसोल में काम करता है


हम्म। यह सही ढंग से "सच" प्रिंट करता है जब मैं जुड़ा हुआ हूं, लेकिन यह कुछ भी प्रिंट नहीं करता है अगर मैं डिस्कनेक्ट करता हूं और इसे अपने ब्राउज़र में चलाता हूं। आपने किस ब्राउज़र / OS में यह परीक्षण किया? मैं क्रोम Win7 उपयोग कर रहा हूँ
DJMcMayhem

@DJMcMayhem आपका कैश कैसे है?
इस्माइल मिगुएल

@DJMcMayhem मैंने Chrome, Win10 में परीक्षण किया। नेटवर्क टैब से कैश को निष्क्रिय कर दिया और ऑफ़लाइन ऑफ़लाइन / ऑनलाइन परीक्षण करने के लिए चेक किया
ज़ानीची

यह 52 बाइट्स में एक पूर्ण कार्यक्रम हो सकता है:fetch('://to.').then(a=>alert(1)).catch(a=>alert(0))
पैट्रिक रॉबर्ट्स

2

जावास्क्रिप्ट ईएस 6, 90 81 बाइट्स

f=a=>{i=new Image();i.src="//placehold.it/1x1";i.onload=b=>a(1);i.onerror=c=>a()}

जावास्क्रिप्ट ईएस 6, 22 21 बाइट्स (अमान्य)

कुछ ब्राउज़र पूरी तरह से समर्थन नहीं करते हैं, या navigator.onLine का उपयोग करते समय अपेक्षित परिणाम नहीं देते हैं।

f=a=>navigator.onLine

2
यह उत्तर बताता है कि यह हमेशा गलत नहीं होगा जब इंटरनेट से जुड़ा न हो
ब्लू


1
हालाँकि आपका उत्तर अभी भी अमान्य है, आप इससे छुटकारा पा सकते हैं f=
मामा फन रोल

1
78 बाइट्स: a=>{with(new Image()){src="//placehold.it/1x1";onload=b=>a(1);onerror=c=>a()}}´ (got rid of f = `और इस्तेमाल किया with(){})
इस्माइल मिगुएल

2

स्काला, 54 बाइट्स

x=>(Runtime.getRuntime exec "ping -c 1 ai."waitFor)<1

बहुत साधारण; http://ai./यदि यह 0 से छूटता है, या असत्य है, तो एक पिंग कमांड निष्पादित करता है , और यह सच है।


2

ब्रेनफक (गैर-प्रतिस्पर्धात्मक) 21 बाइट्स

++++++[>++++++++<-]>.

ब्रेनफक इंटरनेट से कनेक्ट नहीं हो सकता है (जहां तक ​​मुझे पता है), इसलिए चूंकि प्रोग्राम कनेक्ट करने में असमर्थ है, इसलिए उत्तर हमेशा मिलता है 0

गैर-प्रतिस्पर्धात्मक क्योंकि यह कठिन-कोडित आउटपुट मानक खामियों के तहत आता है , भले ही यह कार्यक्रम तकनीकी रूप से चुनौती के लिए सही है।


ब्रेनफक कनेक्ट नहीं कर सकता है, लेकिन मैं जिस कंप्यूटर को चला रहा हूं, वह अभी भी इंटरनेट (या नहीं) से जुड़ा हो सकता है। एक उचित दिमागी समाधान एक ऐसा कार्यक्रम है जो हमेशा "मुझे नहीं पता" का जवाब देता है
कोस

2
@Kos "मुझे नहीं पता" सत्य नहीं है / गलत नहीं है
रेस्टिओसन

यह "मुझे नहीं पता" नहीं है, यह "मैं इसलिए जवाब नहीं दे सकता है"
कोडी

शायद सिर्फ बाइट '\ 0' प्रिंट करें क्योंकि यह भी 0. है। आपके पास केवल 1 बाइट का कोड होगा
12431234123412341234123

2

पॉवरशेल, 64 26 23 बाइट्स

38 बाइट्स बचाए, शॉन एस्टरमैन को धन्यवाद

3 बाइट्स सहेजे, और स्क्रिप्ट की मरम्मत की, घूसखोर के लिए धन्यवाद

Test-Connection -q g.gl

परीक्षण-कनेक्शन -सुविधा।
शॉन एस्टरमैन

PowerShell हल नहीं कर सकता to., आपको g.glइसके बजाय उपयोग करना होगा। इसके अतिरिक्त आप इसे छोटा कर सकते हैं Test-Connection -q g.gl
रिश्वतखोर

2

PHP, 23 PHP + कर्ल, 14

PHP के backtick ऑपरेटर का उपयोग करना:

<?=`curl to.`;

मौखिक उत्तर:

मैं एक शुरुआत करने की कोशिश करूंगा:

<?=file('http://x.gl');

यदि x.gl तक नहीं पहुँचा जा सकता है और Arrayयदि यह है तो यह कुछ भी आउटपुट नहीं करता है।

एक और संस्करण जहां मुझे यकीन नहीं है कि अगर वे फिट होते हैं:

<?=getmxrr('x.gl',$a);  // 22 chars

4
पुन: "यह एक खामी है", मुझे लगता है कि सामान्य सहमति यह है कि यह एक भाषा बोली के रूप में गिना जाता है (इसलिए उत्तर PHP + कर्ल है, 15 बाइट्स )।

क्या कोई सरणी सत्य के रूप में गिना जाता है? मैं इसे वैसे भी प्रतिस्पर्धा करने की अनुमति दूंगा, क्योंकि यह मेरा सवाल है। बस ब्याज से बाहर।
रेस्टिओसन

"Array"जब आप इसे प्रिंट करने का प्रयास करते हैं तो @Restioson php स्ट्रिंग को एक धर्मान्तरित करता है ( <?=) और बूलियन झूठी को परिवर्तित किया जाएगा ""। तो वास्तविक रिटर्न मान एक सरणी नहीं बल्कि एक खाली स्ट्रिंग या एक खाली स्ट्रिंग नहीं है।
क्रिस्टोफ

@ क्रिस्टोफ़ मुझे नहीं लगता कि "ऐरे" सत्य या झूठ के रूप में गिना जाता है
रेस्टियोसन

@ रेस्टिओसन यह एक स्ट्रिंग है जो स्पष्ट रूप से बूलियन ट्रू में परिवर्तित होती है। एक शाखा if ("Array") echo 'thruthy';ली जाएगी इसलिए यह सत्य है । खाली स्ट्रिंग शाखा नहीं लेगी और इसलिए यह गलत है।
क्रिस्टोफ

2

पायथन 3 + अनुरोध, 59 55 53 बाइट्स

एक अनुरोध का जवाब होना चाहिए, है ना?

from requests import*
try:get("http://to.")
except:Z

इंटरनेट से बाहर निकलने की स्थिति 0 है, बिना इंटरनेट के 1। उदाहरण:

$ python inet.py 
$ echo $?
0
$ # Remove ethernet cable
$ python inet.py 
$ echo $?
1

बदलाव का:

  • -4 बाइट्स (धन्यवाद मेगो)

आप एक अलग प्रोटोकॉल ( ftp, शायद), और का उपयोग करके इसे छोटा कर सकते हैं except:0/0
Mego

@ मुझे लगता है कि अनुरोध केवल http (s) करता है। मैंने 0/0 जोड़ा है।
मत्‍स्‍योज

1

अमृत, 33 बाइट्स

{:ok,_}=:inet.getaddr('to',:inet)

0 यदि जुड़ा है, तो 1 अन्यथा।



1

गणितज्ञ 10 बाइट्स

मान लें कि आपके पास Mathematica की एक मान्य प्रति है, और user.wolfram.com पर क्रेडेंशियल लॉगिन करें

CloudPut@1

1 मान को क्लाउड पर लिखेगा। ट्रुथ: क्लाउडऑब्जेक्ट [""] झूठी: $ असफल

CloudGet@%

क्लाउड पर अपलोड किया गया मान 1 लौटाएगा।


1
ध्यान दें, डिफ़ॉल्ट रूप से, REPL स्निपेट की अनुमति नहीं है। &बाद में इसे एक अनाम फ़ंक्शन में बनाने के लिए रखें ।
लीजनमोनमल 978

क्या आप मुझे एक लिंक दे सकते हैं?
केली लोडर


1
मेरी राय में, यह यहां सबसे अच्छा जवाब है। लेकिन क्या क्लाउड ऑब्जेक्ट को सत्य के रूप में गिना जाता है? मैं कहूंगा कि बादल में 1 सत्य है, यद्यपि। अच्छा जवाब!
रिस्टोरियोन

@ LegionMammal978, मैं कोड को .wl पैकेज फ़ाइल में रख सकता हूं और मूल प्रश्न के अनुसार इसे "प्रोग्राम" के रूप में चला सकता हूं। आमतौर पर इन प्रकार के प्रश्न इनपुट के साथ फ़ंक्शन के लिए कॉल करते हैं; कोई उपयोगकर्ता इनपुट आवश्यक नहीं है। इसके अलावा, एक फ़ंक्शन के रूप में मेरे सत्य / असत्य का परीक्षण केवल & के साथ या उसके बिना भी काम करता है। में CloudPut@1&===$Failedऔर बिल्कुल कोई फर्क नहीं पड़ता। अंत में, प्रोग्राम दोनों रिटर्न और आउटपुट प्रिंट करता है, इसलिए यह वास्तव में एक REPL स्निपेट नहीं है जैसा कि आप सुझाव देते हैं।
केली लोडर

1

पायथन 2.7, 70 77 बाइट्स

from urllib import*
a=1
try:urlopen('http://to.')
except:a=0
print a

import urllib as l
try: 
 l.urlopen('http://a.uk')
 print 1
except:
 print 0

सत्य के लिए 1, मिथ्या के लिए 0 का उपयोग करता है। a.uk एक मोटरबाइक कपड़े कंपनी को पुनर्निर्देश करता है। एक चर और मुद्रण द्वारा असाइन करके 3 बाइट्स सहेजे गए। और एक और "के लिए।" ट्रिक (यूरलिब के साथ काम करने की पुष्टि), दो pesky इंडेंट से छुटकारा पाने के लिए।


मुझे लगता है कि from urllib import*एक चार (और l.निश्चित रूप से ड्रॉप ) को बचा सकता है ।
निक टी

@ मैं भूल गया कि आप बीच में जगह छोड़ सकते हैं importऔर *इसलिए मुझे लगता है कि आप सही हैं लेकिन मैं मोबाइल पर हूं और बाद में इसे ठीक करूंगा
क्रिस एच।

1

जूलिया + बैश (डंसुटिल्स के साथ), 10 बाइट्स

run(`dig`)

`command`जूलिया में एक cmdऑब्जेक्ट बनाता है जिसे साथ चलाया जा सकता है run


0

क्लोजर, 49 बाइट्स

#(try(slurp"http://to.")1(catch Exception _ nil))

रिटर्न 1अगर यह कनेक्ट कर सकते हैं, और nilअन्यथा।

slurpपृष्ठ के लिए प्रयास करता है ; NoRouteToHostExceptionविफलता पर एक अपवाद फेंक , जो पकड़ा गया है।

दुर्भाग्य से, प्रोटोकॉल और डॉट अनिवार्य प्रतीत होते हैं।


0

जावास्क्रिप्ट (नैशोर्न), 61 बाइट्स

print(new java.net.InetSocketAddress("to.",80).getAddress())

हंट्रो के जावा उत्तर के आधार पर।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.