Ich bin überrascht, dass dies noch keine Herausforderung darstellt.
Geben Sie die IP-Adresse des Computers aus, auf dem Sie ausgeführt werden. Sie müssen sowohl die lokale als auch die externe IP-Adresse ausgeben.
Lokale IP-Adresse, dh im Standardformat 192.168.xx
Die öffentliche IP-Adresse kann mithilfe von google https://www.google.co.uk/search?source=hp&q=whats+my+ip überprüft werden
Die Ausgabe kann in einem beliebigen Format erfolgen. IPv4 oder IPv6 oder eine beliebige Mischung von beiden ist zulässig, sie müssen jedoch die einzige Ausgabe sein. Code kann ein vollständiges Programm oder eine Funktion sein.
Es gelten die Code-Golf- Regeln, sodass der kürzeste Code gewinnt.
Standardlücken sind verboten.
BEARBEITEN : Gemäß @Peter Taylors Kommentar können Sie für den Fall, dass mehrere von beiden Adresstypen vorhanden sind, entweder den ersten oder so viele ausgeben, wie Sie zugreifen können. Solange mindestens ein Einheimischer und ein Publikum anwesend sind.
0/1
Ding fügt der Herausforderung unnötigen Flaum hinzu.Antworten:
Bash + Curl + iproute2 ,
54 50 49 4833 BytesVielen Dank an @DomHastings für das Golfen ab 1 Byte!
Vielen Dank an @Sisyphus für die Erstellung einer kürzeren URL!
Vielen Dank an @zeppelin für das Golfen mit 9 Bytes!
quelle
1/0
Teil gibt einen Fehler an STDERR aus, der jedoch standardmäßig ignoriert wird. Wenn Sie jedoch eine andere Ausgabe erhaltenip route
, könnte dies nur die Version sein, die ich auf meinem Computer ausgeführt habe. Schande!1000
für mich gedruckt ...ip route get 1
Ausgabe: ptpb.pw/pixxRTNETLINK answers: Network is unreachable
awk 'NR<2&&$0=$7'
Bash
373127 BytesDies ist inspiriert von der Antwort von Bruce Forte . Diese Antwort funktioniert nur mit IPv4, was bedeutet, dass es bei mir nicht funktioniert. Ich habe es in eine Version umgeschrieben, die (nur) mit IPv6 funktioniert:
Dies wird auf Ubuntu 14.04.5 getestet, das über PPPoE verbunden ist, und da IPv6 für die Verwendung ohne NAT ausgelegt ist, wird dieselbe IP-Adresse zweimal ausgegeben.
-6 Bytes dank Zeppelin , -2 Bytes dank Ferrybig , -2 Bytes dank Markasoftware .
quelle
'{print$11,$11}'
,'{print$9,$9}'
damit der Befehl funktioniert. Ihr Befehl gab 2 Mal 1024 zurück. Ihr Befehl funktioniert auf meinem Ubuntu 16.04.2-Rechnerip route
dasproto ra
Teil nicht ausgegeben wurde , können Sie diese Funktion verwenden, um Ihre Antwort weiter zuproto static
nichtproto ra
, obwohl dieser Unterschied zu diesem Code spielt keine Rolle.awk '$0=$9" "$9'
stattdessen , um ein bisschen Golf zu spielen{print$11,$11}
. Viele Systeme (einschließlich mein Arch eins) verwenden das 9. Wort, daher ist es kürzer als 11 und diese Syntax ist auch kleiner als print $ 9, $ 9Mathematica, 17 Bytes
In Mathematica ist für alles etwas eingebautWie in der Dokumentation beschrieben , listet dieser integrierte Befehl alle (lokalen und externen) IP-Adressen auf, die Ihrem Gerät zugeordnet sind.
quelle
WolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]
aber ich weiß nicht, wie ich das direkter erreichen kann.AutoIt,
5653 Bytes@IPAddress1
ist ein zurückgegebenes Makro_GetIP()
kehrt zurück-3 Bytes dank @ mınxomaτ
quelle
C #
196194188163 Bytes2 Bytes dank @Xynos gespart.
25 Bytes dank @Nick eingespart.
Voll / Formatierte Version:
quelle
i.AddressFamily
zuint
anstelle von Gießen2
aufAddressFamily
, und Sie können ersetzenDns.GetHostName()
mit dem leeren String.namespace
Trick für C # ziemlich verbreitet ist. Wenn du denkst, es sollte nicht erlaubt sein, kannst du auf Meta darüber posten, aber im Moment ist es faires Spiel und ein guter Trick, umusing
s zu verkürzen .PowerShell v4 +,
40 bis36 Byte(Funktioniert nur auf Server 2012 R2 oder höher oder Windows 8.1 oder höher. Funktioniert nicht auf TIO.)
Macht genau das, was es verspricht. Ruft die IP-Adressen des lokalen Netzwerks ab und wählt nur den
IPA
Ddress-Teil davon aus (z. B. filtert die Subnetzmaske, das Gateway usw. heraus).Die zweite ist eine,
Invoke-WebRequest
zuhttp://eth0.me
der man einfach denC
Inhalt bekommt ; dh nur die öffentliche IP-Adresse.Ungolfed-Version:
quelle
Get-
Unix Shell + Stunclient , 40 Bytes
Verwendet ein STUN-Protokoll :
Der Name des STUN-Servers stammt aus der Liste der öffentlichen STUN-Server .
Das Ausgabeformat ist:
Beachten Sie, dass beide Zeilen mit einem Leerzeichen eingerückt werden, aber ich glaube, dass dies nicht die geschriebenen Ausgaberegeln verletzt.
Beispielausgabe:
quelle
Curl (Bash One-Liner): 27 Bytes
Das Ergebnis wird gedruckt
stdout
und sieht folgendermaßen aus:curl
sollte mindestens die Version 7.29.0 haben (ab 6. Februar 2013).Die Antwort basiert auf /codegolf//a/139538/66016 .
quelle
Go, nur MacOS, 10 Bytes
In macOS könnte dieser Killswitch verwendet werden, er kann aktuelle private aktive IP und öffentliche IP ausgeben:
Dies ist kein integriertes Tool, sondern versucht, das Auffinden der richtigen IP-Adressen zu vereinfachen.
Die Ausgabe könnte mit folgenden Befehlen erfolgen:
Öffentliche IP:
quelle
PowerShell v3 + (alternative Antwort für Windows 7+)
quelle
-match
, um einige Bytes zu sparen.Bash + Awk + Curl, 43 Bytes
Verwenden Sie nur integrierte Tools für Mac und Linux
quelle
Python 3,
124133 Bytesquelle
print a,b
? Interessanterweise werden auf meinem System (Win7) zwei IP-Adressen ausgegeben, aber keine davon ist meine tatsächliche lokale IP-Adresse.b
ist eigentlich die IP eines virtuellen Adapters und nicht meine LAN-Verbindung .Node.js (JavaScript)
224223194175173130 ByteUngolfed-Version:
.get()
anstelle von.request()
-.end();
entfernt).require
undconsole.log
in Einzelbuchstaben-Variablen, direkt an URL übergebenrequire('http').get
, protokollierte Ausgabe direkt vomdata
Ereignis).quelle
.get()
anstelle von verwenden.request()
. Dann brauchst du das auch nicht.end();
.(a)=>
=>a=>
), IIRC.require
Aufrufe entstehen. Deshalb lasse ich es für den Moment. Trotzdem danke für den Vorschlag.Windows-Batchdatei , 116 Byte
Die erste Zeile durchläuft die Ergebnisse der Ausführung
ipconfig
und ruft Ihre lokale IPv4-Adresse ab.Für den öffentlichen IP-Teil musste ich ein wenig von der wunderbaren Powershell-Antwort stehlen , da es meines Wissens keine Möglichkeit gibt, die öffentliche IP-Adresse des Computers ausschließlich über Batch-Scripting zu ermitteln.
Wir beginnen mit einem
@
Zeichen, um das Echo der Eingabeaufforderung (C:\...\path>
) zu unterdrücken , führen dann den Befehl PowershellInvoke-WebRequest
(mit seinem Aliasiwr
) aus und extrahieren dencontent
Teil davon.Ich experimentierte damit , den Befehl nicht zu verwenden
(...).content
und stattdessen nur auszuführen und die tatsächlichen Informationen aus der vollständigen Ausgabe mit Batch zu extrahieren. Aber das erwies sich als viel länger als diese Lösung, also habe ich es behalten.Getestet unter Windows 10.0.15063.
quelle
R,
142,140, 137 BytesGetestet auf win10 und R (3.4.1).
Vielen Dank für @ Bruce-Forte für die kurze URL.
Ungolfed-Version:
quelle
a <- nchar(x)
mita=nchar(x)
Python 2.7.13 128 Bytes
quelle
Bash + Curl, 24 Bytes
quelle
MS-SQL, 59 Bytes
Gibt die clientseitige IP-Adresse der SQL-Instanz zurück, die die Abfrage ausführt.
quelle
VBA, 58 Bytes
Whoops, behandelt keine lokale Adresse - Fix in Bearbeitung
Anonyme VBE-Sofortfensterfunktion, die keine Eingabe vornimmt und die IP-Adresse des Benutzers über ein Internet Explorer-Fenster ausgibt
quelle