Überprüfen Sie, ob der Computer mit dem Internet verbunden ist

49

Schreiben Sie ein Programm, das abhängig davon, ob das Skript Zugriff auf das Internet hat, eine Ausgabe erzeugt, die "Truthy / Falsey" lautet . Sie können nach eigenem Ermessen versuchen, eine Verbindung zu einer vorhandenen Site herzustellen (verwenden Sie keine schattige Site mit nur 10% Betriebszeit - versuchen Sie, die jährliche Betriebszeit auf über 80% zu beschränken). Wenn die Site nicht verfügbar ist, muss Ihr Programm nicht funktionieren.

Es muss ein eigenständiges Programm oder eine Funktion sein . Sie können Bibliotheken außerhalb der Standardbibliothek verwenden, um dies zu erreichen. Standardlücken sind verboten. Dies ist Codegolf, daher gewinnt der Code mit der kürzesten Bytezahl.

Beispiel Pseudocode:

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

Dies ist mein erster Beitrag zum Thema Code Golf. Wenn dies also gegen Regeln verstößt oder ein Betrug ist, benachrichtigen Sie mich bitte.

BEARBEITEN: Aufgrund zahlreicher Vorschläge habe ich die Beschränkung der UTF-8-Bytezahl aufgehoben

Restioson
quelle
4
Anstelle von trueund falseempfehle ich, einen unserer Standardwerte für Wahrhaftigkeit und Falschheit zuzulassen . Meinen Sie mit Internet auch das Netzwerk außerhalb Ihres lokalen Netzwerks? Müssen Programme noch funktionieren, wenn Google ausgefallen ist oder eine andere große Website?
Blau
3
Die Byte-Zählung erfolgt normalerweise in der systemeigenen oder am besten geeigneten Codierung der Sprache, die nicht immer UTF-8 ist. Sofern Sie keinen guten Grund haben, UTF-8 durchzusetzen, sollte die Kodierung nach Wahl des Programmierers bleiben
Luis Mendo
4
Ich sehe, dass fast jeder g.gl/ benutzthttp://g.gl/ , aber to./http://to./ scheint ein Byte kürzer zu sein (nicht alle Sprachen sehen es als gültige URL durch).
Kevin Cruijssen
9
Commodore Basic:PRINT "0"
Mark
3
Die Maschine, an der ich das schreibe, ist technisch gesehen ein Teil des "Internets", da von außen (über NAT und Portweiterleitung) darauf zugegriffen werden kann. Also, wenn Sie daran denken, kann das Skript "Interneterkennung" wahrscheinlich auf "wahr" reduziert werden :)
Zeppelin

Antworten:

29

Bash (mit dnsutils ), 3 Bytes

Sendet eine DNS-Anfrage für "." (DNS-Stamm), Exit-Code ist 0 für Erfolg und> 0 ansonsten.

Golf gespielt

dig

Prüfung

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

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

Haftungsausschluss

Dies funktioniert natürlich nur, wenn sich Ihr DNS- Server im Netzwerk des Anbieters befindet, dh im "Internet" (da Ihr Anbieternetzwerk normalerweise ein Teil davon ist), oder wenn Ihr System einen öffentlichen DNS-Server verwendet (wie 8.8.8.8) Andernfalls können Sie eine zwischengespeicherte Kopie von einem lokalen LAN- Server (oder localhost) abrufen.

Ich gehe aber davon aus, dass dies nicht gegen die Regeln verstößt, da es offensichtlich mehr als ein System gibt, in dem dies wie beabsichtigt funktioniert.

Pure-HTTP-Methoden können aufgrund eines Zwischenspeicherungs-Proxys auch zu Fehlalarmen führen und funktionieren nicht überall, was für diese Methode also nicht eindeutig ist.

Eine etwas zuverlässigere Version, 8 Bytes

dig +tra

(eine kleine Hommage an @ Dig ital Tra uma!)

Aktiviert den "Trace-Modus", der dig zwingt , die rekursive Suche selbst durchzuführen (siehe https://serverfault.com/a/778830 ), wodurch Cache-Probleme vermieden werden.

Zeppelin
quelle
Zitat aus man dig: Sofern nicht angegeben wird, dass ein bestimmter Nameserver abgefragt werden soll, wird dig jeden der in /etc/resolv.conf aufgelisteten Server testen . Wenn keine verwendbaren Serveradressen gefunden werden, sendet dig die Abfrage an den lokalen Host .
Titus
@Titus, yep das ist richtig, siehe "disclaimer" Teil meiner Antwort, aber solange Ihr DNS-Server (wie in Ihrer resolv.conf angegeben) auf der Seite Ihres Providers ist, funktioniert es einfach gut.
Zeppelin
Ihre Lösung hängt von einer nicht standardmäßigen Installation ab. Ich würde das als Ausnutzen einer Lücke betrachten. Sie können immer noch mit den zwei zusätzlichen Bytes gewinnen.
Titus
1
> Ihre Lösung hängt von einer nicht standardmäßigen Installation ab Nö, genau so funktioniert es auf meinem Rechner (und das ist laut Meta schon genug). Darüber hinaus ist die Verwendung des DNS-Servers Ihres Providers in der Tat eine recht häufige Einrichtung (und normalerweise auch in Ihrer resolv.conf).
Zeppelin
2
Die Standardeinstellungen hängen davon ab, welche Einstellungen Sie bei der Installation verwendet haben. Wenn Sie das Netzwerk mit DHCP konfiguriert haben, verweist resolv.conf wahrscheinlich auf Ihren Router. Wenn Sie das Netzwerk manuell konfiguriert haben, wird der von Ihnen angegebene DNS-Server verwendet.
Jasen
19

Bash + GNU Utils, 8

  • 5 Bytes gespart dank @Muzer.
wget to.

Die anderen Shell-Antworten überprüfen den Rückkehrcode und geben einige Statusausgaben entsprechend aus. Das ist unnötig. Der Shell-Rückkehrcode ist bereits ein verwendbarer Truthy / Falsey-Code und kann über den $?für bash typischen Parameter aufgerufen werden . Rückgabecode 0 bedeutet True. Rückgabewert> 0 bedeutet Falsch.

In Benutzung:

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:~$ 
Digitales Trauma
quelle
2
Verwenden Sie eine Domain wie to.anstatt 8.8.8.8, um viel zu sparen.
Muzer
@ Muzer ja - danke
Digital Trauma
2
@Muzer, es sei denn, es gibt eine lokale to, die der Resolver zu finden konfiguriert ist, es wird immer noch auf die richtige (und vielleicht in der Lage, ein lokales Ping toist genug mit dem Internet verbunden zu sein )
Christian Sievers
2
@Muzer OK, tomanchmal funktioniert und manchmal nicht. Ich schätze, es geht ein bisschen ums Cachen. Ich werde to.nur zur Sicherheit verwenden.
Digitales Trauma
4
Warum ist das eine gültige Domain?
Kos
9

Batch, 8 Bytes

ping to.

pingwird auf gesetzt ERRORLEVEL, 1wenn die Adresse nicht aufgelöst oder erreicht werden kann.

Neil
quelle
7

05AB1E , 11 9 Bytes

2 Bytes auf "bis" gespeichert mit freundlicher Genehmigung von ev3commander

…to..wgX›

Überprüft, ob die Länge des Inhalts unter http: // to angegeben ist . ist größer als 1.
.wGibt bei einem Fehler 0 zurück.

Emigna
quelle
1
Immer ein +1 für 05AB1E Antworten
WorseDoughnut
@WorseDoughnut Und warum ist das so?
mbomb007
3
@ mbomb007 Seit Adnan angefangen hat, daran zu arbeiten und es hier zu posten, war er ein großer Fan der Sprache. Es ist definitiv eine faszinierende Sprache, in die man sich vertiefen kann.
WorseDoughnut
1
@WorseDoughnut Die Antwort enthält bereits einen Hyperlink.
mbomb007
Können Sie keine Verbindung zu zu. ein Byte speichern?
ev3commander
5

MATL , 15 bis 14 Bytes

Dank des Vorschlags von Kevin Cruijssen konnte ein Byte eingespart werden

'http://to.'Xi

Die Ausgabe erfolgt über STDOUT. Dies zeigt eine nicht leere Zeichenfolge an, die Zeichen ungleich Null enthält (was wahr ist), wenn eine Internetverbindung besteht. und zeigt nichts an (was falsch ist), wenn keine Verbindung besteht.

Dies kann nicht online getestet werden, da dies Xiin den Online-Dolmetschern nicht erlaubt ist.

Erläuterung

'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
Luis Mendo
quelle
Würden Sie urlread('http://g.gl')eine OK-Antwort für sich in Betracht ziehen ? Es tritt ein Fehler auf und der Arbeitsbereich bleibt leer, wenn die Verbindung unterbrochen wird. Es wird eine Fehlermeldung angezeigt, aber technisch gesehen ist das zu STDERR ...? Ich dachte, es wäre ein bisschen anstrengend, also habe ich es so gemacht . Aber das Überspringen tryscheint dasselbe Ergebnis zu liefern wie Ihr Code, oder? Sie lassen den Stapel auch leer, nicht wahr? Übrigens nette Antwort ... :)
Stewie Griffin
@StewieGriffin Danke! Ja, ich denke , urlread('http://g.gl')gültig ist (und ist die gleiche wie mein Code der Fall ist), wie STDERR standardmäßig ignoriert wird, und eine leere STDOUT ist falsy in MATLAB
Luis Mendo
1
Würde dies funktionieren, ftpanstatt ein httpweiteres Byte zu speichern?
Floris
1
@ Floris Schön dich auch hier zu sehen! Leider ftpscheint es nicht für diese Seite zu funktionieren
Luis Mendo
1
Hallo @LuisMendo ja ich schleiche manchmal durch andere Seiten ... schade das ftp nicht funktioniert!
Floris
5

Bash 66 62 21 Bytes

ping -c1 g.gl echo $?

Vielen Dank an @Alex L. für den Tipp zur URL-Verkürzung.

Ungolfed-Version:

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

Dies ist meine erste Antwort in Bash. Ich bin nicht sicher, ob ich das Skript ausreichend gekürzt habe.

Abel Tom
quelle
Ich denke, Sie können eine kürzere URL als google.com verwenden, um den Code zu verkürzen. So etwas wie g.gl.
HyperNeutrino
3
Sie sollten auch nur in der Lage sein, echo $?anstelle dieser ganzen if-Anweisung.
SomethingDark
4
Sie haben "einige" ;in der Golflinie verpasst .
Ipor Sircer
@IporSircer Danke. :) @SomethingDark Hallo, echo $? druckt ein 0wenn Erfolg, oder es gibt 2in diesem Fall ein zurück. Ich habe mich nicht mit dem Quellcode der Implementierung von befasst, pingaber ich gehe davon aus, dass es je nach Satz unterschiedliche Rückkehrcodes gibt. Daher habe ich if elseStrategie verwendet.
Abel Tom
@AbelTom - Es könnte argumentiert werden, dass 0 wahr und nicht 0 falsch ist.
SomethingDark
5

R, 20 Bytes

curl::has_internet()

Für genau diese Aufgabe gibt es eine Funktion im curlPaket.

Billywob
quelle
1
+1 schöner Fund. Für Neugierige wie mich ist diese Funktion wie folgt implementiert:function() !is.null(nslookup("r-project.org", error = FALSE))
Plannapus
Äquivalente Anzahl: httr::url_ok('g.gl')(wenn auch veraltet).
Jonathan Carroll
5

Java, 72 Bytes

a->new java.net.InetSocketAddress("to.",80).getAddress().isReachable(9);
Huntro
quelle
3
Sie müssen den vollständig qualifizierten Namen angebenjava.net.InetSocketAddress
4

Perl, 15 Bytes

print`curl to.`

Laufen mit:

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

curlGibt Sachen aus STDERR, macht ihnen nichts aus. Wenn der Computer Zugang zum Internet hat, druckt er ein paar Zeilen HTML (wahrheitsgemäß), andernfalls wird nichts gedruckt (falsch).

Dank @Kevin Cruijssen 1 Byte eingespart to.(anstelle meiner vorherigen b.io).

Dada
quelle
Könnten Sie nicht zu bash wechseln und das entfernen print?
BlueRaja - Danny Pflughoeft
1
@ BlueRaja-DannyPflughoeft Yup, das würde funktionieren (es gibt allerdings bereits eine Antwort in bash (sie verwenden wgetstatt curlaber es ist das gleiche)).
Dada
4

C # 87 Bytes

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

Wenn eine Ausnahme als falsch eingestuft wird, was ich nicht glaube, dann sind dies 65 Bytes:

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

Ich habe auch versucht, den http://to.von @KevinCruijssen angegebenen Link zu verwenden, aber er schien nicht zu funktionieren.

TheLethalCoder
quelle
4

8. , 23 21 Bytes

Dank des Vorschlags von Kevin Cruijssen und meiner Entdeckung konnten zwei Bytes eingespart werden :http: // zu funktionieren scheint so gut wiehttp: // bis . (Speichern eines weiteren Bytes)

"http://to" net:get .

Wenn die Site http: // to erreicht werden kann, wird sie gedruckt true. Andernfalls wird gedruckt false. Die abgerufenen Daten verbleiben auf dem Stapel.

Chaos Manor
quelle
1
TOS bedeutet t op o f s Tack. Ich denke, Sie meinen, es lässt nur Daten auf dem Stapel.
Roman Gräf
Stimmt. Ich habe meine Erklärung verbessert. Vielen Dank.
Chaos Manor
@ ev3commander Hast du es mit http: // versucht ? Es funktioniert in meinem Fall (ich sehe eine Apache2 Ubuntu Standardseite). Es scheint nicht nötig zu sein, '.' oder '/'
Chaos Manor
3

MATLAB, 32 22 Bytes

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

Erläuterung:

Wenn die Internetverbindung besteht, ist dies anseine Zeichenfolge (die Standardvariable) mit dem gesamten HTML-Code im Klartext (was in MATLAB zutrifft ).

Wenn die Internetverbindung unterbrochen ist, wird eine Fehlermeldung an STDERR gesendet und der Arbeitsbereich leer gelassen (was in MATLAB falsch ist ).

Benötigt leider urlreadeine vollständige URL-Adresse , reicht also g.glnicht aus. 11 der 22 Bytes sind daher nur die URL-Adresse.


Alternativer Ansatz:

Eine Lösung, die den Fehler abfängt und im Arbeitsbereich eine 0 (auch falsch ) zurücklässt, wenn die Verbindung unterbrochen ist:

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

0;Initialisiert die Standardvariable ansauf 0, die sich falsein MATLAB befindet. Dann trylesen wir die URL. Dies führt zu einem Fehler, wenn die Internetverbindung unterbrochen ist, oder zu einem Zeichenarray, wenn dies nicht der trueFall ist ( in MATLAB).

Wir müssen nichts fangen, also hören wir einfach auf. Wenn der URL-Leseaufruf erfolgreich war, dann answird eine lange Zeichenfolge mit dem Inhalt der Website angezeigt , ansonsten ans=0.

Stewie Griffin
quelle
3

Bash, 39 Bytes

exec 4<>/dev/tcp/to./80&&echo 1||echo 0
GB
quelle
1
! exec 4<>/dev/tcp/to./80;echo $?
Jasen
oder wenn Sie nicht drucken müssen, sondern es einfach zurückgeben können,exec 4<>/dev/tcp/to./80
Jasen
3

JavaScript ES6, 71 43 Bytes

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

Warnungen 1, wenn online, warnt eine leere Zeichenfolge, wenn offline. Vielen Dank an Patrick Roberts, der mir geholfen hat, einige Bytes zu entfernen

Alte Version

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

Warnungen, [object Reponse]wenn online, Warnungen, 0wenn offline

Das Code-Snippet wurde entfernt. Es funktioniert nicht, da es ohne CORS aus einer anderen Domäne geladen wird, aber in der Browserkonsole

Zanchi
quelle
Hmm. Dies gibt korrekt "true" aus, wenn ich verbunden bin, es wird jedoch nichts gedruckt, wenn ich die Verbindung trenne und es in meinem Browser ausführe. In welchem ​​Browser / Betriebssystem haben Sie das getestet? Ich benutze chrome-win7
DJMcMayhem
@DJMcMayhem Wie ist dein Cache?
Ismael Miguel
@ DJMcMayhem Ich habe in Chrome, Win10 getestet. Cache von der Registerkarte "Netzwerk" deaktiviert und "Offline" aktiviert, um "Offline / Online" zu testen
Zanchi
Dies kann ein vollständiges Programm in 52 Bytes sein:fetch('://to.').then(a=>alert(1)).catch(a=>alert(0))
Patrick Roberts
2

JavaScript ES6, 90 81 Bytes

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

JavaScript ES6, 22 21 Bytes (ungültig)

Einige Browser unterstützen die Datei navigator.onLine nicht vollständig oder führen zu den erwarteten Ergebnissen.

f=a=>navigator.onLine
Tom
quelle
2
Diese Antwort impliziert, dass dies nicht immer falsch zurückgegeben wird, wenn keine Verbindung zum Internet besteht
Blue
Sie können ein Byte speichern, indem Sie dem Lambda einen Parameter hinzufügen, wie f=a=>
folgt
1
Obwohl Ihre Antwort immer noch ungültig zu sein scheint, können Sie sie loswerden f=.
Mama Fun Roll
1
78 Bytes: a=>{with(new Image()){src="//placehold.it/1x1";onload=b=>a(1);onerror=c=>a()}}´ (got rid of f = `und verwendet with(){})
Ismael Miguel
2

Scala, 54 Bytes

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

Ziemlich einfach; Führt einen Ping-Befehl an aus http://ai./und gibt true zurück, wenn er mit 0 beendet wird, oder andernfalls false.

corvus_192
quelle
2

Brainfuck (nicht konkurrierend) 21 Bytes

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

Brainfuck kann keine Verbindung zum Internet herstellen (soweit mir bekannt ist). Da das Programm keine Verbindung herstellen kann, lautet die Antwort immer 0

Nicht konkurrierend, da es unter die hartcodierte Standardausgabelücke zu fallen scheint , obwohl dieses Programm technisch für die Herausforderung korrekt ist.

Cody
quelle
Brainfuck kann keine Verbindung herstellen, aber der Computer, auf dem ich das laufe, kann immer noch mit dem Internet verbunden sein (oder nicht). Eine richtige Brainfuck-Lösung ist ein Programm, das immer "Ich weiß nicht" antwortet
Kos
2
@Kos "Ich weiß nicht" ist nicht wahr / falsch
Restioson
Es ist nicht "Ich weiß nicht", es ist "Ich kann nicht, daher ist die Antwort nein"
Cody
Vielleicht drucken Sie einfach das Byte '\ 0', da dies auch 0 ist. Sie hätten einen Code von nur 1 Byte
12431234123412341234123
2

Powershell, 64 26 23 Bytes

38 Bytes gespart, dank Shawn Esterman

3 Bytes gespeichert und Skript repariert, dank Briantist

Test-Connection -q g.gl
Horváth Dávid
quelle
Test-Verbindung -Leise zu.
Shawn Esterman
PowerShell kann nicht aufgelöst werden to., Sie müssen g.glstattdessen verwenden. Zusätzlich können Sie es auf kürzen Test-Connection -q g.gl.
Briantist
2

PHP, 23 PHP + Curl, 14

Verwendung des PHP-Backtick-Operators:

<?=`curl to.`;

Ursprüngliche Antwort:

Ich werde versuchen, einen Anfang zu machen:

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

Dies gibt nichts aus, wenn x.gl nicht erreicht werden kann und Arraywenn dies der Fall ist.

Eine andere Version, bei der ich nicht ganz sicher bin, ob sie passt:

<?=getmxrr('x.gl',$a);  // 22 chars
Christoph
quelle
4
Bezüglich "ist das eine Lücke", denke ich, dass der normale Konsens darin besteht, dass es als Sprachdialekt gilt (die Antwort lautet also PHP + Curl, 15 Bytes ).
Zählt ein Array als wahr? Ich werde es trotzdem zulassen, da es meine Frage ist. Nur aus Interesse.
Restioson
@Restioson php konvertiert ein Array in den String, "Array"wenn Sie versuchen, es auszudrucken ( <?=) und boolean false wird in konvertiert "". Der tatsächliche Rückgabewert ist also kein Array, sondern eine nicht leere Zeichenfolge oder eine leere Zeichenfolge.
Christoph
@Cristoph Ich glaube nicht, dass "Array" als wahr oder falsch gilt
Restioson
@Restioson Dies ist eine Zeichenfolge, die implizit in den booleschen Wert true konvertiert wird. Ein Zweig if ("Array") echo 'thruthy';würde genommen, deshalb ist es wahr . Die leere Schnur würde den Ast nicht nehmen und ist daher falsch.
Christoph
2

Python 3 + -Anfragen, 59 55 53 Byte

Es muss eine Antwort auf Anfragen geben, richtig?

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

Der Ausgangsstatus ist 0 für das Internet, 1 für kein Internet. Beispiel:

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

Änderungsprotokoll:

  • -4 Bytes (danke Mego)
Matsjoyce
quelle
Sie könnten dies verkürzen, indem Sie ( ftpmöglicherweise) ein anderes Protokoll verwenden und dies tun except:0/0.
Mego
@Mego Ich denke, Anfragen machen nur http (s). Ich habe die 0/0 hinzugefügt.
Matsjoyce
1

Elixier, 33 Bytes

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

0 wenn verbunden, 1 sonst.

movsx
quelle
1

PowerShell , 12 Byte

!!(irm g.gl)
Briantist
quelle
1

Mathematica 10 Bytes

Angenommen, Sie haben eine gültige Kopie von Mathematica und Anmeldeinformationen auf user.wolfram.com

CloudPut@1

schreibt den Wert 1 in die Cloud. Wahrheit: CloudObject [""] Falsey: $ Failed

CloudGet@%

Gibt den Wert 1 zurück, der in die Cloud hochgeladen wurde.

Kelly Lowder
quelle
1
Beachten Sie, dass REPL-Snippets standardmäßig nicht zulässig sind. Setzen Sie &danach, um es in eine unbenannte Funktion zu machen.
LegionMammal978
Können Sie mich auf einen Link verweisen?
Kelly Lowder
1
Meiner Meinung nach ist dies die beste Antwort hier. Aber zählt das Cloud-Objekt als wahr? Ich würde jedoch sagen, dass die 1 in der Wolke wahr ist. Gute Antwort!
Restioson
@ LegionMammal978, ich kann den Code so wie er ist in eine .wl-Paketdatei einfügen und als "Programm" ausführen, wie es gemäß der ursprünglichen Frage zulässig ist. Normalerweise erfordern diese Art von Fragen eine Funktion mit Eingaben; Es ist keine Benutzereingabe erforderlich. Darüber hinaus funktioniert das Testen meiner Wahrheit / Falsch als Funktion genauso gut mit oder ohne das &. Im CloudPut@1&===$Failed& macht das absolut keinen Unterschied. Schließlich gibt das Programm die Ausgabe zurück und druckt sie aus, sodass es sich nicht um ein REPL-Snippet handelt, wie Sie vorschlagen.
Kelly Lowder
1

Python 2.7, 70 77 Bytes

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

Verwendet 1 für wahr, 0 für falsch. a.uk leitet zu einem Motorradbekleidungsunternehmen weiter. 3 Bytes gespart durch Zuweisen zu einer Variablen und Drucken dieser. Und noch eine für das "to". Trick (bestätigt, um mit urllib zu arbeiten), zwei, um die lästigen Einrückungen loszuwerden.

Chris H
quelle
Ich denke, from urllib import*könnte ein Zeichen retten (und l.natürlich fallen lassen).
Nick T
@NickT Ich habe vergessen, dass Sie den Abstand zwischen importund fallen lassen können, und *so denke ich, dass Sie Recht haben, aber ich bin auf dem Handy und ich werde es später beheben
Chris H
1

Julia + Bash (mit dnsutils), 10 Bytes

run(`dig`)

`command`in julia erstellt ein cmdobjekt, mit dem man laufen kann run.

Rɪᴋᴇʀ
quelle
0

Clojure, 49 Bytes

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

Gibt zurück, 1ob eine Verbindung hergestellt werden kann, nilandernfalls.

Nur Versuche zur slurpSeite; NoRouteToHostExceptionbeim Fehlschlagen eine Ausnahme auslösen, die abgefangen wird.

Leider scheinen das Protokoll und der Punkt obligatorisch zu sein.

Karzigenat
quelle
0

Javascript (Nashorn), 61 Bytes

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

Basierend auf der Java-Antwort von Huntro.

SuperJedi224
quelle