Sprawdź, czy komputer jest podłączony do Internetu

49

Napisz program, który w zależności od tego, czy skrypt ma dostęp do Internetu, tworzy wyjście „Truthy / Falsey” . Możesz próbować połączyć się z dowolną istniejącą witryną, według własnego uznania (nie używaj podejrzanej witryny, która ma tylko 10% czasu działania - staraj się utrzymywać ponad 80% rocznego czasu pracy). Jeśli witryna nie działa, Twój program nie musi działać.

Musi to być samodzielny program lub funkcja . Aby to osiągnąć, możesz użyć bibliotek spoza standardowej biblioteki. Standardowe luki są zabronione. To jest kod golfowy, więc wygrywa kod z najkrótszą liczbą bajtów.

Przykład pseudokodu:

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

To jest mój pierwszy post na temat kodu golfa, więc jeśli to w jakikolwiek sposób narusza jakiekolwiek zasady lub jest duplikatem, powiadom mnie.

EDYCJA: Z powodu licznych sugestii usunąłem ograniczenie liczby bajtów UTF-8

Restioson
źródło
4
Zamiast truei falsezalecam zezwolenie na dowolne z naszych domyślnych ustawień w zakresie prawdy i fałszu . Czy przez internet masz na myśli sieć poza siecią lokalną? Czy programy nadal muszą działać, jeśli powiedzą, że Google nie działa lub jakaś inna duża strona?
Niebieski
3
Liczba bajtów jest zwykle wykonywana w natywnym lub najwygodniejszym kodowaniu języka, co nie zawsze jest UTF-8. Chyba, że ​​masz dobry powód do egzekwowania UTF-8, myślę, że kodowanie należy pozostawić do wyboru programisty
Luis Mendo
4
Widzę, że prawie wszyscy używają g.gl/http://g.gl/ , ale to./http://to./ wydaje się być o jeden bajt krótszy (nie wszystkie języki postrzegają go jako prawidłowy adres URL).
Kevin Cruijssen
9
Commodore Basic:PRINT "0"
Mark
3
Maszyna, na której piszę, jest technicznie częścią „Internetu”, ponieważ można uzyskać do niej dostęp z zewnątrz (przez NAT i przekierowanie portów). Jeśli więc o tym pomyślisz, skrypt „wykrywania Internetu” można prawdopodobnie sprowadzić do „prawdziwego” :)
zeppelin

Odpowiedzi:

29

Bash (z dnsutils ), 3 bajty

Wysyła żądanie DNS dla „.” (DNS root), kod wyjścia to 0 dla sukcesu i> 0 w przeciwnym razie.

Grał w golfa

dig

Test

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

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

Zrzeczenie się

Działa to oczywiście tylko wtedy, gdy serwer DNS znajduje się w sieci dostawcy, tj. W „Internecie” (ponieważ sieć dostawcy jest zwykle jego częścią), lub jeśli system korzysta z publicznego serwera DNS (takiego jak 8.8.8.8 od Google, z których korzystają systemy oparte na Androidzie), w przeciwnym razie możesz uzyskać kopię z pamięci podręcznej z lokalnego serwera LAN (lub localhost).

Ale zakładam, że nie jest to sprzeczne z zasadami , ponieważ istnieje oczywiście więcej niż jeden system, w którym działa to zgodnie z przeznaczeniem.

Metody Pure-HTTP mogą również dawać fałszywie pozytywne wyniki z powodu pośredniego buforowania proxy i nie gwarantuje się, że będą działać wszędzie, więc nie jest to coś unikalnego dla tej metody.

Nieco bardziej niezawodna wersja, 8 bajtów

dig +tra

(mały hołd dla @ Dig ital Tra uma!)

Włącza „tryb śledzenia”, który wymusi kopanie, aby samodzielnie przeprowadzało wyszukiwanie rekurencyjne (patrz https://serverfault.com/a/778830 ), unikając problemów z pamięcią podręczną.

zepelin
źródło
Cytat z man dig: O ile nie powiedziano o zapytaniu do określonego serwera nazw, dig spróbuje wypróbować każdy z serwerów wymienionych w /etc/resolv.conf . Jeśli nie zostaną znalezione użyteczne adresy serwerów, dig wyśle ​​zapytanie do lokalnego hosta .
Tytus
@Titus, tak, tak, patrz część „zrzeczenie się odpowiedzialności” mojej odpowiedzi, ale tak długo, jak długo twój serwer DNS (jak podano w resolv.conf) jest po stronie twojego dostawcy, działa po prostu dobrze.
zeppelin
Twoje rozwiązanie zależy od instalacji innej niż domyślna; Uważam, że to wykorzystanie luki. Nadal możesz wygrać z dwoma dodatkowymi bajtami.
Tytus
1
> Twoje rozwiązanie zależy od domyślnej instalacji Nie, dokładnie tak działa na moim komputerze (i to już wystarcza według Meta). Co więcej, korzystanie z serwera DNS twojego dostawcy jest rzeczywiście dość powszechną konfiguracją (i zwykle będzie to również w pliku resolv.conf).
zeppelin
2
Defualt ustala zależy od ustawień używanych podczas instalacji, jeśli skonfigurowałeś sieć za pomocą DHCP, a następnie resolv.conf prawdopodobnie wskazuje na router. jeśli ręcznie skonfigurowałeś sieć, będzie miał dowolny serwer DNS, który wyznaczyłeś.
Jasen
19

Narzędzia Bash + GNU, 8

  • 5 bajtów zapisanych dzięki @Muzer.
wget to.

Inne odpowiedzi powłoki sprawdzają kod powrotu i odpowiednio odbijają niektóre dane wyjściowe statusu. To jest niepotrzebne. Kod powrotu powłoki jest już użytecznym kodem Truthy / Falsey i jest dostępny w $?parametrze idiomatycznym dla bash. Kod powrotu 0 oznacza Prawda. Kod powrotu> 0 oznacza False.

W użyciu:

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:~$ 
Cyfrowa trauma
źródło
2
Użyj domeny takiej jak to.zamiast 8.8.8.8, aby sporo zaoszczędzić.
Muzer
@Muzer tak - dzięki
Digital Trauma
2
@Muzer, chyba że istnieje lokal to, w którym resolver jest skonfigurowany do znalezienia, nadal przejdzie do właściwego (i być może towystarczy pingowanie lokalnego , żeby być podłączonym do Internetu )
Christian Sievers
2
@Muzer OK, toczasami działa, a czasem nie. Chyba trochę buforowania. Użyję to.tylko dla bezpieczeństwa.
Cyfrowa trauma
4
Dlaczego to jest poprawna domena?
Kos
9

Partia, 8 bajtów

ping to.

pingustawi ERRORLEVELsię 1jeśli adres nie może zostać rozwiązany lub osiągnięty.

Neil
źródło
7

05AB1E , 11 9 bajtów

Zapisano 2 bajty na „do”. dzięki uprzejmości ev3commander

…to..wgX›

Sprawdza, czy długość treści w http: // to . jest większy niż 1.
.wzwraca 0 w przypadku błędu.

Emigna
źródło
1
Zawsze +1 za odpowiedzi
05AB1E
@WorseDoughnut I dlaczego tak jest?
mbomb007
3
@ mbomb007 Byłem wielkim fanem języka, odkąd Adnan zaczął nad nim pracować i zamieszczał go tutaj; to zdecydowanie fascynujący język, w którym można zagłębić się.
WorseDoughnut
1
@WorseDoughnut W odpowiedzi znajduje się już hiperłącze.
mbomb007
Nie możesz się połączyć z. zapisać bajt?
ev3commander
5

MATL , 15 14 bajtów

Jeden bajt zapisany dzięki Kevin Cruijssen sugestia „s

'http://to.'Xi

Wyjście odbywa się poprzez STDOUT. Wyświetla niepusty ciąg zawierający niezerowe znaki (co jest prawdą), jeśli istnieje połączenie z Internetem; i nic nie wyświetla (co jest fałszem), jeśli nie ma połączenia.

Nie można tego przetestować online, ponieważ Xijest to niedozwolone w tłumaczach internetowych.

Wyjaśnienie

'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
źródło
Czy uważasz, że urlread('http://g.gl')odpowiedź sama w sobie jest OK? Błąd spowoduje pozostawienie obszaru roboczego pustego, jeśli połączenie nie będzie działać. Wyświetli się komunikat o błędzie, ale technicznie to STDERR ...? Myślałem, że to trochę skomplikowane, więc zrobiłem to w ten sposób . Ale pomijanie trywydaje się dawać taki sam wynik jak kod, lub? Ty też zostawiasz pusty stos, prawda? Nawiasem mówiąc,
fajna
@StewieGriffin Thanks! Tak, myślę, że urlread('http://g.gl')jest poprawny (i jest taki sam jak mój kod), ponieważ STDERR jest domyślnie ignorowany, a pusty STDOUT jest fałszem w MATLAB
Luis Mendo
1
czy to zadziałałoby ftpzamiast http- zapisać kolejny bajt?
Floris,
1
@Floris Miło cię widzieć również tutaj! Niestety ftpwydaje się, że nie działa na tej stronie
Luis Mendo
1
Cześć @LuisMendo tak Czasami szukam innych stron ... szkoda, że ​​ftp nie działa!
Floris
5

Bash 66 62 21 bajtów

ping -c1 g.gl echo $?

Dzięki @Alex L. za wskazówkę dotyczącą skrócenia adresu URL.

Wersja bez golfa:

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

To jest moja pierwsza odpowiedź w Bash, nie jestem pewien, czy wystarczająco skróciłem skrypt.

Abel Tom
źródło
Myślę, że możesz użyć krótszego adresu URL niż google.com, co pozwoliłoby skrócić kod. Coś jak g.gl.
HyperNeutrino,
3
Powinieneś być w stanie po prostu echo $?zamiast całej tej instrukcji if.
SomethingDark
4
przegapiłeś „trochę” ;na linii golfowej.
Ipor Sircer
@IporSircer Thanks. :) @SomethingDark Witaj, echo $? drukuje 0if sukces, w przeciwnym wypadku zwraca a 2w tym przypadku. Nie zajrzałem do kodu źródłowego implementacji, pingale zakładam, że istnieją różne kody zwrotne w zależności od konfiguracji. Dlatego użyłem if elsestrategii.
Abel Tom
@AbelTom - można argumentować, że 0 to prawda, a inna niż 0 to falsey.
SomethingDark
5

R, 20 bajtów

curl::has_internet()

W curlpakiecie znajduje się funkcja umożliwiająca wykonanie dokładnie tego zadania .

Billywob
źródło
1
+1 fajne znalezisko. Dla ciekawskich, takich jak ja, funkcja ta jest realizowana jako:function() !is.null(nslookup("r-project.org", error = FALSE))
plannapus
Równoważna liczba: httr::url_ok('g.gl')(choć przestarzała).
Jonathan Carroll
5

Java, 72 bajty

a->new java.net.InetSocketAddress("to.",80).getAddress().isReachable(9);
Huntro
źródło
3
Musisz podać pełną nazwęjava.net.InetSocketAddress
4

Perl, 15 bajtów

print`curl to.`

Biegnij z:

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

curlwypuszcza STDERRrzeczy, nie przejmuj się nimi. Jeśli komputer ma dostęp do Internetu, wydrukuje kilka wierszy HTML (prawda), w przeciwnym razie nic nie wydrukuje (fałsz).

Zaoszczędziłem 1 bajt, używając to.(zamiast mojego poprzedniego b.io) dzięki @Kevin Cruijssen.

Dada
źródło
Nie możesz przełączyć się na bash i usunąć print?
BlueRaja - Danny Pflughoeft
1
@ BlueRaja-DannyPflughoeft Tak, to by działało (choć już jest odpowiedź w bash (używają wgetzamiast, curlale to jest to samo)).
Dada,
4

C #, 87 bajtów

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

Jeśli wyjątek jest uważany za falsey, co nie wydaje mi się, że tak, to jest to 65 bajtów:

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

Próbowałem także użyć linku http://to.podanego przez @KevinCruijssen, ale nie działało.

TheLethalCoder
źródło
4

8 , 23 21 bajtów

Dwa bajty zapisane dzięki sugestii Kevina Cruijssena i mojemu odkryciu:http: // to wydaje się również działaćhttp: // do . (zapisywanie kolejnego bajtu)

"http://to" net:get .

Jeśli strona http: // jest dostępna, zostanie wydrukowana true. W przeciwnym razie drukuje się false. Pozostawia pobrane dane na stosie.

Dwór Chaosu
źródło
1
TOS oznacza t op ö f s kleistość. myślę, że masz na myśli, że po prostu pozostawia dane na stosie.
Roman Gräf,
Zgadza się. Poprawiłem swoje wyjaśnienie. Dzięki.
Chaos Manor
@ ev3commander Czy próbowałeś już z http: // to ? Działa w moim przypadku (widzę domyślną stronę Ubuntu Apache2). Wydaje się, że nie trzeba dodawać „”. lub „/”
Chaos Manor
3

MATLAB, 32 22 bajtów

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

Wyjaśnienie:

Jeśli połączenie internetowe jest uruchomione, spowoduje to, że ans(zmienna domyślna) będzie ciągiem z całym kodem HTML w postaci zwykłego tekstu (co jest prawdą w MATLAB).

Jeśli połączenie internetowe nie działa, spowoduje to zapisanie komunikatu o błędzie do STDERR i pozostawienie obszaru roboczego pustego (co w MATLAB jest fałszywe ).

Niestety urlreadwymaga pełnego adresu URL , więc g.glnie wystarczy. 11 z 22 bajtów jest zatem tylko adresem url.


Alternatywne podejście:

Rozwiązanie, które wychwytuje błąd i pozostawia 0 (również fałsz ) w obszarze roboczym, jeśli połączenie jest nieczynne:

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

0;inicjuje domyślny zmiennej ansdo 0, co jest falsew programie MATLAB. Następnie powinniśmy tryprzeczytać adres URL. To spowoduje błąd, jeśli połączenie internetowe jest wyłączone, lub tablicę znaków, jeśli nie (która jest truew MATLAB).

Nie musimy niczego łapać, więc po prostu kończymy. Jeśli połączenie urlread zakończyło się powodzeniem, ansbędzie długi ciąg z treścią strony internetowej, w przeciwnym razie ans=0.

Stewie Griffin
źródło
3

Bash, 39 bajtów

exec 4<>/dev/tcp/to./80&&echo 1||echo 0
GB
źródło
1
! exec 4<>/dev/tcp/to./80;echo $?
Jasen
lub jeśli nie musisz drukować wartości prawda / fałsz, ale możesz po prostu ją zwrócić,exec 4<>/dev/tcp/to./80
Jasen
3

JavaScript ES6, 71 43 bajtów

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

Alerty 1 w trybie online, alarmuje pusty ciąg w trybie offline. Dzięki Patrick Roberts za pomoc w goleniu niektórych bajtów

Stara wersja

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

Alerty w [object Reponse]trybie online, alerty w 0trybie offline

Usunięto fragment kodu, nie działa, ponieważ ładuje się z innej domeny bez CORS, ale działa w konsoli przeglądarki

Zanchi
źródło
Hmm To poprawnie drukuje „prawda”, gdy jestem podłączony, ale nie drukuje niczego, jeśli odłączę i uruchomię go w przeglądarce. W jakiej przeglądarce / systemie operacyjnym testowałeś to? Używam chrome-win7
DJMcMayhem
@DJMcMayhem Jak twoja pamięć podręczna?
Ismael Miguel
@DJMcMayhem Przetestowałem w Chrome, Win10. Wyłączono pamięć podręczną na karcie sieci i zaznaczyłem Offline, aby przetestować offline / online
Zanchi,
Może to być pełny program w 52 bajtach:fetch('://to.').then(a=>alert(1)).catch(a=>alert(0))
Patrick Roberts,
2

JavaScript ES6, 90 81 bajtów

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

JavaScript ES6, 22 21 bajtów (nieprawidłowy)

Niektóre przeglądarki nie obsługują w pełni lub nie dają oczekiwanych rezultatów podczas korzystania z navigator.onLine.

f=a=>navigator.onLine
Tomek
źródło
2
Ta odpowiedź oznacza, że ​​nie zawsze będzie to fałsz, gdy nie będzie podłączony do Internetu
Blue
Możesz zapisać bajt, dodając parametr do lambda, tak jak:f=a=>
XavCo7
1
Chociaż twoja odpowiedź wciąż wydaje się nieprawidłowa, możesz się jej pozbyć f=.
Mama Fun Roll
1
78 bajtów: a=>{with(new Image()){src="//placehold.it/1x1";onload=b=>a(1);onerror=c=>a()}}´ (got rid of f = `i użyte with(){})
Ismael Miguel
2

Scala, 54 bajty

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

Dość proste; wykonuje polecenie ping do http://ai./i zwraca true, jeśli zakończy się na 0, lub false w przeciwnym razie.

corvus_192
źródło
2

Brainfuck (niekonkurujące) 21 bajtów

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

Brainfuck nie może połączyć się z Internetem (o ile mi wiadomo), więc ponieważ program nie może się połączyć, odpowiedź jest zawsze 0

Nie konkuruje, ponieważ wydaje się, że mieści się w standardowej luce w zapisie wyjściowym , mimo że program ten technicznie jest odpowiedni do wyzwania.

Cody
źródło
Brainfuck nie może się połączyć, ale komputer, na którym go uruchomiłem, może być nadal podłączony do Internetu (lub nie). Prawidłowe rozwiązanie dla pieprzenia mózgu to program, który zawsze odpowiada „nie wiem”
Kos
2
@Kos „Nie wiem” nie jest prawdą / falsey
Restioson
To nie jest „nie wiem”, to „nie mogę, dlatego odpowiedź brzmi„ nie ”
Cody
może po prostu wydrukuj bajt „0”, ponieważ jest to również 0. kod miałby tylko 1 bajt
12431234123412341234123
2

PowerShell, 64 26 23 bajtów

Zaoszczędzono 38 bajtów dzięki Shawnowi Estermanowi

Zaoszczędzono 3 bajty i naprawiono skrypt, dzięki briantist

Test-Connection -q g.gl
Horváth Dávid
źródło
Test-Connection-Quiet to.
Shawn Esterman
PowerShell nie może rozwiązać to., musisz g.glzamiast tego użyć . Dodatkowo możesz go skrócić Test-Connection -q g.gl.
briantist
2

PHP, 23 PHP + Curl, 14

Korzystanie z operatora wstecznego PHP:

<?=`curl to.`;

Oryginalna odpowiedź:

Spróbuję zacząć:

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

Nie wyprowadza nic, jeśli x.gl nie może zostać osiągnięte i Arrayjeśli tak jest.

Kolejna wersja, w której nie jestem pewien, czy pasują:

<?=getmxrr('x.gl',$a);  // 22 chars
Christoph
źródło
4
Re „jest to luka”, myślę, że normalny konsensus jest taki, że liczy się on jako dialekt językowy (więc odpowiedź to PHP + Curl, 15 bajtów ).
Czy tablica liczy się jako prawda? Mimo to pozwolę mu konkurować, ponieważ to moje pytanie. Po prostu poza zainteresowaniem.
Restioson
@Restioson php konwertuje tablicę na ciąg, "Array"gdy próbujesz go wydrukować ( <?=), a logiczna wartość false zostanie przekonwertowana na "". Zatem rzeczywista wartość zwracana nie jest tablicą, ale niepustym łańcuchem lub pustym łańcuchem.
Christoph
@Cristoph Nie sądzę, że „Array” liczy się jako prawda lub falsey
Restioson
@Restioson Jest to ciąg znaków, który domyślnie konwertuje na wartość logiczną true. Oddział if ("Array") echo 'thruthy';zostałby zabrany, dlatego jest to zgodne z prawdą . Pusty ciąg nie zająłby gałęzi i dlatego jest falsey.
Christoph
2

Żądania w języku Python 3 +, 59 55 53 bajtów

Musi być prośba o odpowiedź, prawda?

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

Status wyjścia to 0 dla Internetu, 1 dla braku internetu. Przykład:

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

Dziennik zmian:

  • -4 bajty (dzięki Mego)
matsjoyce
źródło
Możesz to skrócić, używając innego protokołu ( ftpbyć może) i działając except:0/0.
Mego
@Mego Myślę, że prośby robią tylko http (s). Dodałem 0/0.
matsjoyce
1

Eliksir, 33 bajty

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

0 jeśli podłączony, 1 w przeciwnym razie.

movsx
źródło
1

PowerShell , 12 bajtów

!!(irm g.gl)
briantist
źródło
1

Mathematica 10 bajtów

Zakładając, że masz prawidłową kopię Mathematica i dane logowania na user.wolfram.com

CloudPut@1

zapisze wartość 1 w chmurze. Truthy: CloudObject [""] Falsey: $ Failed

CloudGet@%

Zwróci wartość 1, która została przesłana do chmury.

Kelly Lowder
źródło
1
Pamiętaj, że domyślnie fragmenty REPL są niedozwolone. Umieścić &potem aby go w bezimiennej funkcji.
LegionMammal978
Czy możesz wskazać mi link?
Kelly Lowder
1
Moim zdaniem jest to najlepsza odpowiedź tutaj. Ale czy obiekt w chmurze liczy się jako prawdziwy? Powiedziałbym jednak, że 1 w chmurze jest prawdą. Niezła odpowiedź!
Restioson
@ LegionMammal978, mogę umieścić kod, tak jak jest, w pliku pakietu .wl i uruchomić go jako „program”, co jest dozwolone na pierwotne pytanie. Zazwyczaj tego rodzaju pytania wymagają funkcji z danymi wejściowymi; nie jest wymagane wprowadzanie danych przez użytkownika. Co więcej, testowanie mojej funkcji prawda / fałsz jako funkcji działa równie dobrze z lub bez &. W CloudPut@1&===$Failed& nie robi absolutnie żadnej różnicy. Na koniec program zarówno zwraca, jak i drukuje dane wyjściowe, więc tak naprawdę nie jest to fragment REPL, jak sugerujesz.
Kelly Lowder
1

Python 2.7, 70 77 bajtów

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

Używa 1 dla prawdy, 0 dla fałszu. a.uk przekierowuje do firmy odzieżowej dla motocykli. Zaoszczędzono 3 bajty, przypisując zmienną i drukując ją. I kolejny dla „do”. trick (potwierdzony do pracy z urllib), dwa do pozbycia się nieznośnych wcięć.

Chris H.
źródło
Myślę, że from urllib import*może uratować znak (i l.oczywiście spadek ).
Nick T
@NickT zapomniałem można upuścić przestrzeń między importi *tak myślę, że masz rację, ale jestem na telefon, a ja go naprawić później
Chris H
1

Julia + Bash (z dnsutils), 10 bajtów

run(`dig`)

`command`w Julii tworzy cmdobiekt, który można uruchomić run.

Rɪᴋᴇʀ
źródło
0

Clojure, 49 bajtów

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

Zwraca, 1jeśli można się połączyć, i w nilinny sposób.

Po prostu próbuje przejść slurpdo strony; zgłaszanie NoRouteToHostExceptionwyjątku w przypadku awarii, która jest przechwytywana.

Niestety protokół i kropka wydają się obowiązkowe.

Carcigenicate
źródło
0

JavaScript (Nashorn), 61 bajtów

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

Na podstawie odpowiedzi Java Huntro.

SuperJedi224
źródło