Je suis surpris que cela n'ait pas encore posé de problème.
Sortez l'adresse IP de la machine que vous utilisez. Vous devez sortir les adresses IP locales et externes.
Adresse IP locale, c'est-à-dire selon le format par défaut 192.168.xx
L'adresse IP publique peut être vérifiée en utilisant google https://www.google.co.uk/search?source=hp&q=whats+my+ip
La sortie peut être dans n'importe quel format. IPv4 ou IPv6 ou tout mélange de chacun est autorisé, mais ils doivent être la seule sortie. Le code peut être un programme complet ou une fonction.
les règles de code-golf s'appliquent donc le code le plus court l'emporte.
Les échappatoires standard sont interdites.
EDIT: Selon le commentaire de @Peter Taylor, dans le cas où plusieurs de l'un ou l'autre type d'adresse sont présents, vous pouvez choisir de sortir la première ou autant que vous pouvez accéder. Tant qu’au moins un local et un public sont présents.
0/1
chose ajoute des peluches inutiles au défi.Réponses:
Bash + curl + iproute2 ,
54 50 49 4833 octetsMerci @DomHastings d'avoir joué au golf sur 1 octet!
Merci @Sisyphus d'avoir trouvé une URL plus courte!
Merci @zeppelin d'avoir joué au golf sur 9 octets!
la source
1/0
partie renvoie une erreur à STDERR, mais cela est ignoré par défaut, si vous obtenez une sortie différente pourip route
cela, cela pourrait simplement être la version que j'utilisais sur ma machine. La honte!1000
pour moi ...ip route get 1
sortie: ptpb.pw/pixxRTNETLINK answers: Network is unreachable
awk 'NR<2&&$0=$7'
Bash
373127 octetsCeci est inspiré par la réponse de Bruce Forte . Cette réponse ne fonctionne qu'avec IPv4, ce qui signifie que cela ne fonctionne pas pour moi. Je l'ai réécrit dans une version qui (uniquement) fonctionne avec IPv6:
Ceci est testé sur Ubuntu 14.04.5 connecté via PPPoE et puisque IPv6 est conçu pour être utilisé sans aucun NAT, il affichera deux fois la même adresse IP.
-6 octets grâce à zeppelin , -2 octets grâce à Ferrybig , -2 octets grâce à Markasoftware .
la source
'{print$11,$11}'
pour'{print$9,$9}'
faire fonctionner la commande, votre commande est retournée 1024 2 fois, votre commande fonctionne sur ma machine Ubuntu 16.04.2ip route
ne produit pas laproto ra
pièce, vous pouvez l'utiliser comme une fonctionnalité pour approfondir votre réponseproto static
nonproto ra
, bien que cette différence n'ait pas d'importance pour ce code.awk '$0=$9" "$9'
plutôt{print$11,$11}
. De nombreux systèmes (y compris mon Arch) utilisent le 9ème mot, il est donc plus court que 11, et l'utilisation de cette syntaxe est également plus petite que print $ 9, $ 9Mathematica, 17 octets
Mathematica a une fonction intégrée pour toutComme décrit dans la documentation , cette commande intégrée répertorie toutes les adresses IP (locales et externes) associées à votre appareil.
la source
WolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]
mais je ne sais pas comment y accéder plus directement.AutoIt,
5653 octets@IPAddress1
est une macro qui revient_GetIP()
résultats-3 octets grâce à @ mınxomaτ
la source
C #,
196194188163 163 octetsEnregistré 2 octets grâce à @Xynos.
25 octets enregistrés grâce à @Nick.
Version complète / formatée:
la source
i.AddressFamily
auint
lieu de transtyper2
enAddressFamily
, et vous pouvez remplacerDns.GetHostName()
par la chaîne vide.namespace
astuce est assez courante pour C #. Si vous pensez que cela ne devrait pas être autorisé, vous pouvez publier sur méta à ce sujet, mais pour le moment c'est un jeu équitable et une astuce pour raccourcir leusing
s.PowerShell v4 +,
4036 octets(Fonctionne uniquement sur Server 2012 R2 ou supérieur, ou Windows 8.1 ou supérieur. Ne fonctionne pas sur TIO.)
Est-ce exactement ce qu'il dit sur l'étain. Obtient les adresses IP du réseau local et sélectionne uniquement la
IPA
partie de celle-ci (par exemple, filtre le masque de sous-réseau, la passerelle, etc.).Le second est un
Invoke-WebRequest
àhttp://eth0.me
qui obtient simplement sonC
contenu; c'est-à-dire, juste l'adresse IP publique.Version non golfée:
la source
Get-
Unix Shell + stunclient , 40 octets
Utilise un protocole STUN :
Le nom du serveur STUN provient de la liste des serveurs STUN publics .
Le format de sortie est:
Notez que les deux lignes seront en retrait avec un seul espace, mais je pense que cela ne casse pas les règles de sortie telles qu'elles sont écrites.
Exemple de sortie:
la source
curl (bash one-liner): 27 octets
Le résultat est imprimé
stdout
et ressemble à ceci:curl
devrait être au moins de la version 7.29.0 (à partir du 6 février 2013).La réponse est basée sur /codegolf//a/139538/66016 .
la source
Go, MacOS uniquement, 10 octets
Dans macOS, ce killswitch pourrait être utilisé, il peut imprimer l'IP active privée actuelle et l'IP publique:
Ce n'est pas un outil intégré mais essaie de simplifier le processus de recherche des IP appropriées.
La sortie pourrait être obtenue en utilisant des commandes comme:
IP publique:
la source
PowerShell v3 + (réponse alternative pour Windows 7+)
la source
-match
pour enregistrer quelques octets.Bash + Awk + Curl, 43 octets
utilisant uniquement des outils intégrés pour Mac et Linux
la source
Python 3,
124133 octetsla source
print a,b
? Fait intéressant, cela génère deux adresses IP sur mon système (Win7), mais aucune d'entre elles n'est mon adresse IP locale réelle.b
est en fait l'IP d'un adaptateur virtuel et non ma connexion au réseau local .Node.js (JavaScript)
224223194175173130 130 octetsVersion non golfée:
.get()
au lieu de.request()
-.end();
supprimé).require
etconsole.log
dans des variables à lettre unique, transmis directement l'URL àrequire('http').get
, sortie enregistrée directement à partir de l'data
événement).la source
.get()
place de.request()
. Ensuite, vous n'avez pas non plus besoin de.end();
.(a)=>
=>a=>
), IIRC.require
appels, donc je vais le laisser pour l'instant. Merci quand même pour la suggestion.Fichier batch de Windows , 116 octets
La première ligne parcourt les résultats de l'exécution
ipconfig
et obtient votre adresse IPv4 locale.Pour la partie IP publique, j'ai dû voler un peu de la merveilleuse réponse Powershell car, à ma connaissance, il n'y a aucun moyen d'obtenir l'IP publique de la machine en utilisant uniquement des scripts batch.
Nous commençons par un
@
signe, pour supprimer l'écho de l'invite (C:\...\path>
), puis exécutons la commande PowershellInvoke-WebRequest
(avec son alias,iwr
) et extrayons lacontent
partie de cela.J'ai expérimenté non utiliser
(...).content
et, au lieu de cela, d'exécuter uniquement la commande et d'extraire les informations réelles de la sortie complète, en utilisant un lot. Mais cela s'est avéré bien plus long que cette solution, alors je l'ai gardée.Testé sur Windows 10.0.15063.
la source
R,
142,140, 137 octetsTesté sur win10 et R (3.4.1).
Merci pour @ Bruce-Forte pour l'URL courte.
Version non golfée:
la source
a <- nchar(x)
para=nchar(x)
Python 2.7.13 128 octets
la source
Bash + Curl, 24 octets
la source
MS-SQL, 59 octets
Renvoie l'adresse IP côté client de l'instance SQL exécutant la requête.
la source
VBA, 58 octets
Oups, ne gère pas l'adresse locale - correction en cours
Fonction de fenêtre immédiate VBE anonyme qui ne prend aucune entrée et génère l'adresse IP de l'utilisateur via une fenêtre Internet Explorer
la source