क्या यह साइट डाउन है या यह सिर्फ मैं हूं?


13

चुनौती

चुनौती सरल है, http://isup.me का उपयोग करके , यह निर्धारित करें कि एक इनपुट वेबसाइट ऊपर या नीचे है।

यदि साइट ऊपर है, तो आपको एक सत्य मान वापस करना चाहिए और यदि साइट नीचे है, तो आपको एक गलत मूल्य वापस करना चाहिए।

नियम

इनपुट एक वेब एड्रेस होगा जैसे stackexchange.comया google.co.uk। इनपुट कभी भी नहीं होगा http://, https://आदि स्ट्रिंग की शुरुआत में, लेकिन हो सकता है www.या codegolf.शुरू में आदि।

आपको उस साइट का उपयोग करना चाहिए isup.me/URLजहां URL इनपुट है।

जब कोई साइट ऊपर होती है, तो यह दिखेगा:

http://isup.me/codegolf.stackexchange.com

यदि कोई साइट नीचे है, तो यह दिखेगा:

http://isup.me/does.not.exist

URL शॉर्टर्स को isup.me से अलग नहीं किया जाता है

उदाहरण इनपुट

शायद ऊपर (वर्तमान परिस्थितियों के आधार पर):

google.de
codegolf.stackexchange.com
worldbuilding.meta.stackexchange.com
tio.run
store.nascar.com
isup.me

नीचे होगा:

made.up.com
fake.com.us
why.why.why.delilah
store.antarcticrhubarbassociation.an

जीतना

बाइट्स में सबसे छोटा कोड जीतता है।


21
वैसे: "made.up.co.uk" वास्तव में ऊपर है।
जाइंटट्री

8
मैंने अभी fake.com.usआपके परीक्षण मामलों में गड़बड़ी दर्ज की है!
YSC

14
लेकिन अगर isup.meनीचे हो तो क्या होगा ?
ओकेक्स

2
@ क्या आप सुनिश्चित हैं कि यह सिर्फ आप ही नहीं हैं?
पियरे अरलाउड

3
अनुशंसित परीक्षण का मामला: isup.me। यह जो कहता है, उसके अलावा एक परिणाम देता है, google.comवापस आ सकता है।
ओकेक्स

जवाबों:


16

श (+ कर्ल + ग्रेप), 28 26 बाइट्स

curl -L isup.me/$1|grep ^I

बाहर निकलने की स्थिति के माध्यम से आउटपुट (ऊपर के लिए 0, नीचे के लिए 1)। Iएक पंक्ति की शुरुआत में दिखता है , जो कि तब होता है जब डोमेन ऊपर होता है (यहां तक ​​कि isup.me/isup.me के विशेष मामले के लिए )।


1
curl -L isup.me/$1|grep u!1 बाइट बचाता है। यह मानता है कि! डोमेन नाम में एक मान्य वर्ण नहीं है।

है 0श में truthy?
झबरा

1
0वास्तव में श में सत्य है, सभी नॉनजरो मूल्यों के साथ मिथ्या है। इसके अलावा, IMO यह वास्तव में अच्छा है कि sh संस्करण इतना छोटा है, क्योंकि यह गोल्फिंग पर विचार किए बिना भी इस कार्य के लिए बिल्कुल सही भाषा है।
स्कोर_उंडर

यह कहा कि यह spthissitedoesntexist.invalid
स्कोर_उंडर

1
यह मेरी मशीन पर मेल खाता है। यह इस से मेल खाता है: <a href="http://spthissitedoesntexist.invalid" class="domain">spthissitedoesntexist.invalid</a>विशेष रूप से यह अंदर मेल खाता है href
स्कोर_उंडर

5

स्टैक्ड , 44 बाइट्स

['http://isup.me/'\+[CS'!'eq sum 2=out]curl]

एसिंक्रोनस फ़ंक्शन जो 0साइट को आउटपुट नहीं करता है, और 0यदि यह ऊपर है तो किसी भी अन्य संख्या से अधिक है ।

उदाहरण:

['http://isup.me/'\+['s u'split#'1-put]curl] @:isup

'Is google up?' put 'google.com' isup

आउटपुट (शायद): Is google up? 1


क्या आप Stacked GH पेज से लिंक कर सकते हैं?
डाउनग्रेड

@Downgoat किया।
कॉनर ओ'ब्रायन

यदि यह होने वाली घटना के लिए जाँच कर रहा है s u, तो ध्यान दें कि यह किसी भी इनपुट के साथ शुरू होता है u(चाहे ऊपर या नीचे)।
एंडर्स कासोर्ग

@AndersKaseorg फिक्स्ड, धन्यवाद।
कॉनर ओ'ब्रायन

बेहतर उदाहरण: 'Is example.com up?' put 'example.com' isupआउटपुट (सिर्फ शायद नहीं, लेकिन निश्चित रूप से):Is example.com up? 1
एरिक आउटगोल्फर जूल

4

कोटलिन आरईपीएल - 131 108 106 93 79 55 53 64 63 बाइट्स

पहले कोटलिन गोल्फिंग पर प्रयास करें।
एक चर या मूल्य नामित में वेबसाइट की उम्मीद है a

अब कम व्हाट्सएप के साथ।
किसने कहा "लू" पर्याप्त नहीं है?
निश्चित और छोटा, अब http://isup.me पर भरोसा नहीं करता है ।
कनेक्शन को स्वयं खोलने की आवश्यकता नहीं है, बस डेटा की धारा प्राप्त करें (या नहीं)
कार्य http://isup.me का उपयोग करना था , है ना? इसके अलावा: <किसी URL में मान्य वर्ण नहीं है।
अब isup.meवेबसाइट के साथ काम करता है।

अब वेबसाइट को एक लाइन के रूप में पढ़ा जाता है, क्योंकि कोई वेबसाइट को वेरिएबल मान नहीं सकता है।

"m h" !in java.net.URL("http://isup.me/"+readLine()).readText()

एक लाइन पढ़ता है जिसमें सिर्फ वेबसाइट है। किसी साइट के डाउन होने पर उस हिस्से के
चेक भेजे जाते हैं।m hfrom here

क्रमशः "सत्य" या "असत्य" देता है।


एक लैम्ब्डा के रूप में - 172 120 118 99 85 67 66 बाइट्स

{a:String->"m h" !in java.net.URL("http://isup.me/$a").readText()}

सीधे आमंत्रित किया जा सकता है:

{ ... }("google.com")

मुझे माफ कर दो अगर मैं गलत हूँ, लेकिन यह एक मेमने को आसानी से परिवर्तित नहीं किया जा सकता है?
निक क्लिफर्ड

@NickClifford यकीन है, लेकिन यह वास्तव में तर्क और प्रकार की परिभाषा के कारण अधिक लंबा होगा (15 वर्ण क्योंकि प्रकार का
इंजेक्शन

3
मैं भाषा नहीं जानता, लेकिन ऐसा लगता है कि आप देख रहे हैं कि "लू" पाठ में है या नहीं। क्या यह मामला नहीं है कि यह पाठ भी (चर) साइट नाम लौटाता है? और अगर ऐसा है, तो क्या इसका मतलब यह है कि आपको loo.com जैसी साइटों के लिए झूठी नकारात्मक मिलती है?
कोल

@ क्या आप निश्चित रूप से सही हैं, मैं इस बारे में पूरी तरह से भूल गया (मैं केवल Google और नकली वेबसाइट का परीक्षण कर रहा था)। मैं अगली सुबह कोड अपडेट करूंगा (यह 2 बजे जहां मैं वर्तमान में हूं)
GiantTree

यह looनाम वाली साइटों पर विफल हो जाएगा । electric.boogalooमौजूद नहीं है, लेकिन स्ट्रिंग looवहाँ आउटपुट में होगा।
स्कोर_उंडर

2

अनुरोध के साथ अजगर 2 या 3 ( 70 69 68 बाइट्स)

from requests import*;lambda u:"u. "in get("http://isup.me/"+u).text

1 बाइट मुंडा: "u. "" u" नहीं, एक वैध अनुकूलन नहीं है।
1 बाइट मुंडा: __import__('requests').from requests import*;

यह अब वास्तव में एक REPL- केवल कोड का टुकड़ा है, और इस लाइन को चलाने के बाद फ़ंक्शन का नाम दिया जाएगा _


1
अंत में सिंटैक्स त्रुटि (शायद एक आवारा ))।
आउटगोल्फ जूल

1
से शुरू होने वाले इनपुट के लिए विफल u
आउटगोल्फ जूल

1
उपयोग करना from requests import*और get1 बाइट छोटा है।
mbomb007

1
यह केवल REPL नहीं है, इसे अनाम कार्यों (अजगर में लैम्ब्डा) के साथ उत्तर देने की अनुमति है
फेलिप नारदी बतिस्ता

यह एक अनाम फ़ंक्शन है, लेकिन एक संपूर्ण के रूप में स्क्रिप्ट का उपयोग एक अभिव्यक्ति के रूप में नहीं किया जा सकता है (क्योंकि यह उपयोग करता है import), इसलिए मुझे लगता है कि यह सिर्फ एक REPL लाइन को कॉल करने के लिए सुरक्षित है।
स्कोर_उंडर

2

पायथन 3 141 133 113 192 141 बाइट्स

अजगर के लिए सेलेनियम (वेबड्राइवर सहित) की आवश्यकता होती है ।

42 बाइट्स कम करने के लिए @cairdcoinheringaahing को धन्यवाद!
@ V.Courtois के लिए धन्यवाद एक साधारण फिक्स इंगित करने के लिए!

from selenium import*
d=webdriver.Firefox();d.get("http://isup.me/"+input());print("up"in d.find_element_by_xpath("//*[@id='content']/p[1]"))

प्रिंटों 1यदि साइट, और प्रिंट तैयार होकर चलने लगे 0

Ungolfed संस्करण:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
urlToTest = "www.f.com"
driver = webdriver.Firefox()
driver.get("http://downforeveryoneorjustme.com/"+urlToTest)
res = driver.find_element_by_xpath("//*[@id='content']/p[1]")
print(1 if "up" in res.text else 0)

उन्होंने कहा कि isup.me टिप्पणियों में ठीक है; आप कुछ बाइट्स जीत सकते हैं :)
वी। कोर्टोइस

1
-1 यह एक स्निपेट है। पूर्ण कार्यक्रमों या कार्यों की आवश्यकता होती है और इनपुट को एक चर (जैसे t) में ग्रहण नहीं किया जा सकता है । इसके अलावा, आप प्रिंट स्टेटमेंट कोprint("up"in r.text)
caird coinheringaahing

@cairdcoinheringaahing ठीक है, उन बदलावों को करेंगे, धन्यवाद! यह मेरा दूसरा उत्तर है, इसलिए मुझे नहीं पता था कि स्निपेट या पूर्ण विकसित कार्यक्रम पोस्ट करना है या नहीं। इसलिए मैंने दोनों को पोस्ट किया।
राहुल भारद्वाज


2

जावास्क्रिप्ट (ईएस 6), 74 66 बाइट्स

f=s=>fetch('//isup.me/'+s).then(r=>r.text()).then(t=>/u!/.test(t))

@Shaggy का धन्यवाद, जिन्होंने मेरे ध्यान में लाया कि एक सुलझा हुआ वादा आउटपुट के रूप में गिना जाता है।

इस समाधान के साथ समस्या यह है कि जब तक मैं पहले से ही एक पृष्ठ पर इसका परीक्षण नहीं करता हूं, तब तक यह कॉर्स त्रुटि को फेंक देगा isup.me। लेकिन वर्तमान में, यह पुनर्निर्देशित हो जाता हैdownforeveryoneorjustme.com

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

च = रों => लाने ( '// isup.me/'+s).then(r=>r.text()).then(t=>alert(t.match(/u!/)))


1
आप छुटकारा पा सकते हैं alertऔर बस वादा वापस कर सकते हैं । देखें यहाँ । मुझे लगता है कि आप भी इससे बचत करने में सक्षम हो सकते हैं /u!/.test(t)
झबरा

1

पायथ , 24 बाइट्स

}" u"s'+"http://isup.me/

Trueयदि साइट ऊपर है, तो वापस लौटें , Falseअन्यथा। इनपुट URL को उद्धृत किया जाना चाहिए। ऑनलाइन इंटरप्रेटर पर इसका परीक्षण नहीं किया जा सकता है क्योंकि 'सुरक्षा कारणों से इस पर अक्षमता है; इसके बजाय आपको Pyth की स्थानीय प्रति की आवश्यकता होगी ।

व्याख्या

                        Q    # Implicit input
       +"http://isup.me/     # Concatenate "http://isup.me/" with the input
      '                      # Open the URL
     s                       # Concatenate all the lines of the returned HTML page
}" u"                        # Test whether " u" is in the page or not

1
से शुरू होने वाले इनपुट के लिए विफल u
आउटगोल्फ जूल


1

पॉवरशेल, 32 बाइट्स

(iwr isup.me/$args)-notmatch'u!'

मुझे खेद पोस्ट करने से पहले आपका जवाब याद आ गया! कुछ अजीब irmव्यवहार ने मुझे इस पर एक गुच्छा बचा लिया। मेरा यहाँ
बजे

1

पॉवरशेल, 25 बाइट्स

!(irm isup.me/$args).html

इस तथ्य का उपयोग करता है कि केवल विफलता पर Invoke-RestMethodएक .htmlसंपत्ति के साथ पृष्ठ लौटाता है । (पता नहीं क्यों वास्तव में ऐसा होता है ...)

बूल में कनवर्ट करने के लिए लाइन को इंवर्ट करता है, Trueलाइव साइट के लिए आउटपुट करता है या Falseडाउन साइट के लिए।

PS C:\Users\sweeneyc\Desktop> .\Test-SiteUp.ps1 "connorlsw.com"
True
PS C:\Users\sweeneyc\Desktop> .\Test-SiteUp.ps1 "connorlsw.notawebsite"
False
PS C:\Users\sweeneyc\Desktop> .\Test-SiteUp.ps1 "google.com"
True
PS C:\Users\sweeneyc\Desktop> .\Test-SiteUp.ps1 "isthisreallyasite.com"
False

@TessellatingHeckler irmनॉन-पार्सबल पृष्ठों के लिए प्लेनटेक्स्ट देता है, मैं एक प्लेनटेक्स्ट मैच करने जा रहा था, इसलिए यह iwr जैसा ही व्यवहार करता होगा, भले ही मुझे लगता है कि यह काम करता है।
कोल्स

1

हालोवी , 20 बाइट्स

oisup.me/⁰
\p
ye$hd0

p.साइट डाउन होने पर आउटपुट करता है, और e.यदि यह ऊपर है।

स्पष्टीकरण:

oisup.me/⁰  ~# Open the concatination of "isup.me/" and arg0
\p          ~# Select first p element
ye$hd0      ~# Edit text with neovim and output result:
            ~#   Go one character before the end of the line and ..
            ~#   delete until beginning

1

हास्केल (लैंबडॉट), 157 बाइट्स

import Data.ByteString.Lazy.Char8
import Network.HTTP.Simple
f s=httpLBS(parseRequest_$"http://isup.me/"++s)>>=print.not.isInfixOf"u!".unpack.getResponseBody

दुर्भाग्य से आप इस Network.HTTP.Simpleपर आयात नहीं कर सकते tio.run, इस स्क्रिप्ट को चलाने का सबसे आसान तरीका होगा (आपको इसकी आवश्यकता होगी stack):

#!/usr/bin/env stack
-- stack --install-ghc --resolver lts-8.19 runghc --package http-conduit

import Data.ByteString.Lazy.Char8
import Network.HTTP.Simple
import Data.List

main :: IO ()
main = mapM_ test [ "google.de", "made.up.com"]
  where test url = print ("testing "++url) >> f url

f :: String -> IO ()
f s=httpLBS(parseRequest_$"http://isup.me/"++s)
 >>=print.not.isInfixOf"u!".unpack.getResponseBody


0

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

#(clojure.string/includes?(slurp(str"http://isup.me/"%))"'s j")

जाँचता है कि यदि HTML द्वारा लौटाया गया slurpस्ट्रिंग शामिल है "'s j"(जैसे, "यह sj ust you")। मैं एक छोटा स्ट्रिंग ढूंढने में सक्षम हो सकता हूं जो पृष्ठ के लिए अद्वितीय है, लेकिन यह मुझे 2 बाइट्स बचा सकता है। यह संभवतः इसे कम सटीक भी बनाता है। "s j" उस एक परिदृश्य को छोड़कर मार्कअप में कहीं भी दिखाई नहीं देगा। एक स्ट्रिंग जैसे "यू।" हालांकि संभवतः URL में दिखाई दे सकता है, जो इसे तोड़ देगा।

(defn is-up? [site]
  (clojure.string/includes?
    (slurp (str "http://isup.me/" site))
    "'s j"))

0

निम, 108 बाइट्स

import httpclient,strutils
echo newhttpclient().getcontent("//isup.me/"&stdin.readline.string).find("ks ")<0

दुर्भाग्यपूर्ण है कि के strutilsलिए आवश्यक है contains

निम सीखना, सुझावों की सराहना की!


0

पीएचपी, 82 78 बाइट्स

<?=$i=$argv[1],+!preg_match("/!.*$i/",file_get_contents("http://isup.me/$i"));

उदाहरण i / o रन:

$ php script.php google.com
> google.com1

उदाहरण 2

$ php script.php does.not.exist
> does.not.exist0

लगभग सबसे छोटा समाधान संभव है। खाली आउटपुट "एक मिथ्या मूल्य" भी है, जिससे आप हटा सकते हैं +। और आप के $argnबजाय $argv[1]एक और 6 (शून्य से 1) बाइट्स का उपयोग कर सकते हैं।
टाइटस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.