이 사이트가 다운 되었습니까 아니면 저입니까?


13

도전

http://isup.me를 사용 하면 입력 한 웹 사이트가 작동 중인지 작동 중지되는지 를 쉽게 확인할 수 있습니다.

사이트가 작동하면 정확한 값을 반환하고 사이트가 작동하지 않으면 잘못된 값을 반환해야합니다.

규칙

입력과 같은 웹 주소 것 stackexchange.com또는 google.co.uk. 입력은하지 않아도됩니다 http://, https://문자열의 시작 등,하지만있을 수 있습니다 www.또는 codegolf.시작에서 등

isup.me/URLURL이 입력 된 사이트를 사용해야합니다 .

사이트가 작동하면 다음과 같습니다.

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"는 실제로 가동 중입니다.
GiantTree

8
방금 fake.com.us테스트 사례를 엉망으로 등록 했습니다!
YSC

14
하지만 isup.me다운 되면 어떻게 되나요?
Okx

2
@Oks 당신 만이 아닌가?
Pierre Arlaud

3
권장 테스트 사례 : isup.me. 그것은 반환 할 수있는 것 이외의 결과를 google.com반환합니다.
Okx

답변:


16

sh (+ curl + grep), 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
0sh가 실제로 진실이며, 0이 아닌 모든 값은 거짓입니다. 또한 IMO는 골프를 고려하지 않아도이 작업에 가장 적합한 언어이므로 sh 버전이 너무 짧아서 정말 좋습니다.
Score_Under

즉이 spthissitedoesntexist.invalid처럼 뭔가에 실패했다
Score_Under

1
내 컴퓨터에서 일치합니다. 이 비트와 일치합니다. <a href="http://spthissitedoesntexist.invalid" class="domain">spthissitedoesntexist.invalid</a>특히 href.
Score_Undering

5

스택 , 44 바이트

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

0사이트가 작동하지 않는 경우 출력 하고 작동 하지 않는 다른 숫자는 출력 하는 비동기 함수입니다 0.

예 a :

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

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

출력 (아마도) : Is google up? 1


스택 형 GH 페이지에 링크를 추가 할 수 있습니까?
Downgoat

@ 다운 염소.
코너 오브라이언

이 발생을 확인하는 경우 (위 또는 아래)로 s u시작하는 모든 입력에서 발생합니다 u.
Anders Kaseorg

@AndersKaseorg 고마워.
코너 오브라이언

더 나은 예 : 'Is example.com up?' put 'example.com' isup출력 (아마도 물론) :Is example.com up? 1
Outgolfer Erik

4

코 틀린 REPL-131108106 93 79 55 53 64 63 바이트

먼저 Kotlin 골프를 시도하십시오.
변수 또는 값으로 웹 사이트를 기대합니다 a.

이제 공백이 줄어 듭니다.
"루"가 충분하지 않다고 누가 말했습니까?
고정 및 단축, 더 이상 http://isup.me에 의존하지 않습니다 .
연결 자신을 열 필요는 단지 데이터의 스트림을 얻을 (여부)
작업을 사용하는 것이 었습니다 http://isup.me 오른쪽? 또한 : <URL에서 유효한 문자가 아닙니다.
이제 isup.me웹 사이트로 작동합니다.

이제 웹 사이트를 포함하는 변수를 가정 할 수 없으므로 웹 사이트를 한 줄로 읽습니다.

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

웹 사이트 만 포함하는 한 줄을 읽습니다. 사이트가 다운되었을 때 전송
되는 m h부분을 확인 from here합니다.

"true"또는 "false"를 각각 반환합니다.


Lambda로-17212011899 85 67 66 바이트

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

직접 호출 할 수 있습니다.

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

내가 틀렸다면 용서하십시오. 그러나 이것이 람다로 쉽게 변환 될 수 없었습니까?
Nick Clifford

@NickClifford는 확실하지만 인수와 타입 정의로 인해 실제로 더 길어질 것입니다 (타입 추론이 작동하지 않기 때문에 15 문자)
GiantTree

3
언어를 모르지만 반환 된 텍스트에 "loo"가 있는지 확인하고있는 것 같습니다. 이 텍스트가 (가변) 사이트 이름을 반환하는 경우가 아닙니까? 그렇다면 그것이 loo.com과 같은 사이트에 대해 잘못된 부정을 받는다는 의미입니까?
cole

@Cole 당신은 확실히 맞습니다. 나는 이것에 대해 완전히 잊었습니다 (Google과 가짜 웹 사이트 만 테스트하고있었습니다). 다음 날 아침에 코드를 업데이트합니다 (현재 오전 2시)
GiantTree

loo이름 이 있는 사이트에서는 실패합니다 . electric.boogaloo존재하지 않지만 문자열 loo은 출력에 있습니다.
Score_Under

2

요청이있는 Python 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
끝에 구문 오류 (아마도 길 잃은 ))
Outgolfer Erik

1
로 시작하는 입력에 실패합니다 u.
Outgolfer Erik

1
사용 from requests import*및은 get1 바이트 짧습니다.
mbomb007

1
그것은이 익명의 기능 (파이썬에서 람다)으로 응답 허용 것,하지 REPL 전용입니다
펠리페 나르디 바티스타

명명되지 않은 함수이지만 스크립트 전체를 표현식으로 사용할 수 없으므로 (사용 import하기 때문에) REPL 줄이라고 부르는 것이 더 안전하다고 생각합니다.
Score_Under

2

Python3 141 133 113 192 141 바이트

Python에는 Selenium (웹 드라이버 포함)이 필요합니다 .

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.

언 골프 버전 :

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가 훌륭하다고 말했다. 당신은 약간의 바이트를 이길 수 있습니다 :)
V. Courtois

1
-1 스 니펫입니다. 전체 프로그램 또는 기능이 필요하며 변수 (예 :)에서 입력을 가정 할 수 없습니다 t. 또한, 당신은 인쇄 문장을 골프 수 있습니다print("up"in r.text)
caird coinheringaahing

@cairdcoinheringaahing 좋아, 그 변화를 만들 것입니다, 감사합니다! 이것은 두 번째 대답이므로 스 니펫을 게시할지 본격적인 프로그램을 게시할지 여부를 몰랐습니다. 그래서 둘 다 게시했습니다.
Rahul Bharadwaj


2

자바 스크립트 (ES6), 74 66 바이트

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

@Shaggy 덕분에 약속 된 약속이 출력으로 계산된다는 점에 주목했습니다.

이 솔루션의 문제는 이미있는 페이지에서 테스트하지 않으면 CORS 오류가 발생한다는 것입니다 isup.me. 하지만 현재는downforeveryoneorjustme.com

이전 버전 :

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


1
당신은 제거 alert하고 약속을 반환 할 수 있습니다 . 여기를 참조 하십시오 . 와 함께 비용을 절약 할 수도 있다고 생각합니다 /u!/.test(t).
얽히고 설킨

1

Pyth , 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.
Outgolfer Erik


1

PowerShell, 32 바이트

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

내가 미안하게 게시하기 전에 답변을 놓쳤다! 이상한 irm행동이 나를 많이 절약했습니다. 내 여기
colsw

1

PowerShell, 25 바이트

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

실패시에만 속성이 Invoke-RestMethod있는 페이지 를 반환 하는 팩트를 사용합니다 .html. (왜 이런 일이 일어나는지 전혀 모른다 ...)

줄을 반전시켜 bool로 변환 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과 동일하게 작동했습니다.
colsw

1

Halovi , 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

하스켈 (Lambdabot), 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.Simpletio.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"( "It 'sj ust you"). 페이지에 고유 한 더 작은 문자열을 찾을 수 있지만 최대 2 바이트를 절약 할 수 있습니다. 또한 정확도가 떨어질 수 있습니다. 해당 시나리오를 제외하고는 마크 업에 " 'j"가 표시되지 않습니다. "u"와 같은 문자열 그러나 URL에 잠재적으로 나타날 수 있으며 이로 인해 URL이 손상 될 수 있습니다.

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

0

Nim, 108 바이트

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

불행히도 strutils 필요합니다 contains.

님을 학습, 팁 감사합니다!


0

PHP, 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) 바이트를 사용할 수 있습니다.
Titus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.