ไซต์นี้ล่มหรือเป็นแค่ฉันหรือเปล่า


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" เป็นจริงขึ้นมา
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จริงในดวลจุดโทษ?
Shaggy

1
0แท้จริงแล้วเป็นความจริงใน sh ด้วยค่าที่ไม่ใช่ศูนย์ทั้งหมดเป็นเท็จ ยิ่งไปกว่านั้น IMO ก็ดีที่เวอร์ชั่น sh นั้นสั้นมากเนื่องจากเป็นภาษาที่เหมาะสมสำหรับงานนี้แม้ว่าจะไม่ได้พิจารณาตีกอล์ฟก็ตาม
คะแนน _ ต่ำกว่า

ที่กล่าวว่าสิ่งนี้จะล้มเหลวในบางสิ่งบางอย่างเช่น spthissitedoesntexist.invalid
Score_Under

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นั้น

ตัวอย่าง a:

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

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

ผลลัพธ์ (อาจ): Is google up? 1


คุณสามารถเพิ่มลิงก์ไปยังหน้า GH แบบซ้อนได้หรือไม่
Downgoat

@Downgoat เรียบร้อยแล้ว
Conor O'Brien

หากสิ่งนี้กำลังตรวจสอบการเกิดขึ้นของs uโปรดทราบว่าสิ่งนี้เกิดขึ้นในการป้อนข้อมูลใด ๆ ที่เริ่มต้นด้วยu(ไม่ว่าจะขึ้นหรือลง)
Anders Kaseorg

@AndersKaseorg คงที่ขอบคุณ
Conor O'Brien

ตัวอย่างที่ดีกว่า: 'Is example.com up?' put 'example.com' isupเอาท์พุท (อาจจะไม่เพียง แต่แน่นอน):Is example.com up? 1
Erik the Outgolfer

4

Kotlin REPL - 131 108 106 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" ตามลำดับ


ในฐานะแลมบ์ดา - 172 120 118 99 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
โคล

@ คุณถูกต้องแน่นอนฉันลืมเรื่องนี้อย่างสมบูรณ์ (ฉันแค่ทดสอบ Google และเว็บไซต์ปลอม) ฉันจะอัปเดตรหัสในเช้าวันรุ่งขึ้น (ตอนนี้ฉันกำลัง 2:00)
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
ข้อผิดพลาดทางไวยากรณ์ในตอนท้าย (อาจเป็นจรจัด))
Erik the Outgolfer

1
uล้มเหลวสำหรับปัจจัยการผลิตที่เริ่มต้นด้วย
Erik the Outgolfer

1
การใช้from requests import*และgetสั้นลง 1 ไบต์
mbomb007

1
มันไม่ใช่ REPL-only แต่ได้รับอนุญาตให้ตอบด้วยฟังก์ชั่นที่ไม่มีชื่อ (lambdas in python)
Felipe Nardi Batista

มันเป็นฟังก์ชั่นที่ไม่มีชื่อ แต่สคริปต์โดยรวมไม่สามารถใช้เป็นนิพจน์ได้ (เนื่องจากมันใช้import) ดังนั้นฉันคิดว่ามันปลอดภัยกว่าที่จะเรียกมันว่าบรรทัด REPL
Score_Under

2

Python3 141 133 113 192 141 ไบต์

ต้องการSelenium (รวมถึง webdriver) สำหรับ python

ขอบคุณ @cairdcoinheringaahing สำหรับการลดขนาด 42 ไบต์!
ขอบคุณ @ 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 ใช้ได้ดีในความคิดเห็น คุณสามารถชนะไบต์บาง :)
วี Courtois

1
-1 นี่คือตัวอย่าง จำเป็นต้องใช้โปรแกรมหรือฟังก์ชั่นแบบเต็มและไม่สามารถรับอินพุตได้ในตัวแปร (เช่นt) นอกจากนี้คุณยังสามารถตีพิมพ์แถลงการณ์ถึงprint("up"in r.text)
caird coinheringaahing

@cairdcoinheringaahing โอเคจะทำการเปลี่ยนแปลงเหล่านั้นขอบคุณ! นี่คือคำตอบที่สองของฉันดังนั้นฉันไม่รู้ว่าจะโพสต์ตัวอย่างหรือโปรแกรมที่เต็มเปี่ยม ดังนั้นฉันโพสต์ทั้งสอง
ราหุล Bharadwaj


2

Javascript (ES6), 74 66 ไบต์

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

ขอบคุณ @Shaggy ที่ทำให้ฉันทราบว่าสัญญาที่ได้รับการแก้ไขนับเป็นผลลัพธ์

ปัญหาเกี่ยวกับการแก้ปัญหานี้ว่ามันจะโยนความผิดพลาดล ธ isup.meจนกว่าฉันทดสอบบนหน้าเว็บที่มีอยู่แล้วที่ แต่ในปัจจุบันนั้นได้รับการเปลี่ยนเส้นทางไปยังdownforeveryoneorjustme.com

รุ่นเก่ากว่า:

f = s => ดึงข้อมูล ( '// isup.me/'+s).then(r=>r.text()).then(t=>alert(t.match(/u!/)))


1
คุณสามารถกำจัดalertและเพียงแค่คืนสัญญา ดูที่นี่ /u!/.test(t)ฉันคิดว่าคุณอาจจะสามารถที่จะทำให้ประหยัดด้วย
Shaggy

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ล้มเหลวสำหรับปัจจัยการผลิตที่เริ่มต้นด้วย
Erik the Outgolfer



1

PowerShell ขนาด 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 ไม่ว่าฉันจะเดาว่ามันใช้งานได้หรือเปล่า
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

Haskell (แลมบ์บ็อต), 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

ไป 111 ไบต์

ตามแบบฉบับของ Go วิธีการที่สั้นที่สุดคือถอดมันออก

import"os/exec"
func h(a string)bool{return exec.Command("sh","-c","curl -L isup.me/"+a+"|grep ^I").Run()!=nil}

การใช้งานอื่น ๆ ที่นี่: https://play.golang.org/p/8T5HSDQFmC


0

Clojure, 63 ไบต์

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

ตรวจสอบว่า HTML กลับโดยslurpมีสตริง"'s j"(ในขณะที่ "มัน, SJ'แค่คุณ") ฉันอาจสามารถค้นหาสตริงที่เล็กกว่าซึ่งไม่ซ้ำกับเพจ แต่ส่วนใหญ่จะช่วยฉัน 2 ไบต์ นอกจากนี้ยังอาจทำให้แม่นยำน้อยลง "j" จะไม่ปรากฏในมาร์กอัปทุกที่ยกเว้นในฉากหนึ่ง สตริงเช่น "u." อย่างไรก็ตามอาจปรากฏใน 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

โชคร้ายที่เป็นสิ่งจำเป็นสำหรับstrutilscontains

การเรียนรู้ Nim เคล็ดลับที่ได้รับการชื่นชม!


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) ไบต์
ติตัส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.