Me sorprende que esto no haya surgido en un desafío todavía.
Imprima la dirección IP de la máquina en la que está ejecutando. Se requiere que envíe las direcciones IP locales y externas.
Dirección IP local, es decir, a lo largo del formato predeterminado de 192.168.xx
La dirección IP pública se puede verificar utilizando google https://www.google.co.uk/search?source=hp&q=whats+my+ip
La salida puede estar en cualquier formato. Se permite IPv4 o IPv6 o cualquier combinación de cada uno, sin embargo, deben ser la única salida. El código puede ser un programa completo o una función.
se aplican las reglas del código de golf , por lo que el código más corto gana.
Las lagunas estándar están prohibidas.
EDITAR: Según el comentario de @Peter Taylor, en el caso de que haya múltiples direcciones de cualquier tipo, puede optar por generar la primera o todas las que pueda acceder. Siempre que al menos un local y un público estén presentes.
0/1
cosa agrega una pelusa innecesaria al desafío.Respuestas:
Bash + curl + iproute2 ,
54 50 49 4833 bytes¡Gracias @DomHastings por jugar golf en 1 byte!
¡Gracias @Sisyphus por crear una URL más corta!
¡Gracias @zeppelin por jugar 9 bytes!
fuente
1/0
parte emite un error a STDERR, pero eso se ignora por defecto, si obtienes una salida diferenteip route
, esa podría ser la versión que estaba ejecutando en mi máquina. ¡Vergüenza!1000
para mí ...ip route get 1
salida: ptpb.pw/pixxRTNETLINK answers: Network is unreachable
awk 'NR<2&&$0=$7'
Bash
373127 bytesEsto está inspirado en la respuesta de Bruce Forte . Esa respuesta solo funciona con IPv4, lo que significa que no funciona para mí. Lo he reescrito en una versión que (solo) funciona con IPv6:
Esto se prueba en Ubuntu 14.04.5 conectado a través de PPPoE y dado que IPv6 está diseñado para usarse sin NAT, generará la misma dirección IP dos veces.
-6 bytes gracias a zeppelin , -2 bytes gracias a Ferrybig , -2 bytes gracias a Markasoftware .
fuente
'{print$11,$11}'
para'{print$9,$9}'
hacer que el comando funcionara, tu comando regresó 1024 2 veces, tu comando funciona en mi máquina Ubuntu 16.04.2ip route
no genera laproto ra
parte, puede usar esto como una función para obtener su respuesta aún másproto static
noproto ra
, aunque esa diferencia no importa a este código.awk '$0=$9" "$9'
lugar de{print$11,$11}
. Muchos sistemas (incluido mi Arch One) usan la novena palabra, por lo que es más corta que 11, y también usar esta sintaxis es más pequeña que imprimir $ 9, $ 9Mathematica, 17 bytes
Mathematica tiene un incorporado para todoComo se describe en la documentación , este comando incorporado enumera todas las direcciones IP (tanto locales como externas) asociadas con su dispositivo.
fuente
WolframAlpha["ip address", {{"IPAddress:InternetData", 1}, "ComputableData"}][[1,2]]
pero no sé cómo llegar a eso más directamente.AutoIt,
5653 bytes@IPAddress1
es una macro que regresa_GetIP()
devoluciones-3 bytes gracias a @ mınxomaτ
fuente
C #,
196194188163 bytesGuardado 2 bytes gracias a @Xynos.
Guardado 25 bytes gracias a @Nick.
Versión completa / formateada:
fuente
i.AddressFamily
aint
su lugar de echar2
aAddressFamily
, y se puede reemplazarDns.GetHostName()
con la cadena vacía.namespace
truco sea bastante común para C #. Si crees que no debería permitirse, puedes publicar en meta al respecto, pero en este momento es un juego justo y un buen truco para acortarusing
.PowerShell v4 +,
4036 bytes(Solo funciona en Server 2012 R2 o superior, o Windows 8.1 o superior. No funciona en TIO).
Hace exactamente lo que dice en la lata. Obtiene las direcciones IP de la red local y selecciona solo la
IPA
parte de la dirección (p. Ej., Filtra la máscara de subred, la puerta de enlace, etc.).El segundo es un
Invoke-WebRequest
ahttp://eth0.me
que simplemente obtiene suC
contenido; es decir, solo la dirección IP pública.Versión sin golf:
fuente
Get-
Unix Shell + cliente aturdidor , 40 bytes
Hace uso de un protocolo STUN :
El nombre del servidor STUN es de la lista de servidores STUN públicos .
El formato de salida es:
Tenga en cuenta que ambas líneas estarán sangradas con un solo espacio, pero creo que esto no rompe las reglas de salida tal como están escritas.
Salida de muestra:
fuente
curl (bash one-liner): 27 bytes
El resultado está impreso
stdout
y se ve así:curl
debe ser al menos de la versión 7.29.0 (del 6 de febrero de 2013).La respuesta se basa en /codegolf//a/139538/66016 .
fuente
Ir, solo MacOS, 10 bytes
En macOS, este conmutador podría usarse, puede imprimir la IP privada activa actual y la IP pública:
Esta no es una herramienta integrada, pero trata de simplificar el proceso de encontrar las IP adecuadas.
La salida podría obtenerse usando comandos como:
IP pública:
fuente
PowerShell v3 + (respuesta alternativa para Windows 7+)
fuente
-match
para guardar un par de bytes.Bash + Awk + Curl, 43 bytes
utilizando solo herramientas integradas para Mac y Linux
fuente
Python 3,
124133 bytesfuente
print a,b
? Curiosamente, esto genera dos IP en mi sistema (Win7), pero ninguna de ellas es mi dirección IP local real.b
en realidad es la IP de un adaptador virtual y no mi conexión de área local .Node.js (JavaScript)
224223194175173130 bytesVersión sin golf:
.get()
lugar de.request()
-.end();
eliminado).require
yconsole.log
en variables de una sola letra, pasó la URL directamente arequire('http').get
, la salida registrada directamente desde eldata
evento).fuente
.get()
lugar de.request()
. Entonces tampoco necesitas el.end();
.(a)=>
=>a=>
), IIRC.require
llamadas, así que lo dejaré por ahora. Gracias por la sugerencia de todos modos.Archivo por lotes de Windows , 116 bytes
La primera línea recorre los resultados de la ejecución
ipconfig
y obtiene su dirección IPv4 local.Para la parte de IP pública, tuve que robar un poco de la maravillosa respuesta de Powershell porque, hasta donde yo sé, no hay forma de obtener la IP pública de la máquina utilizando únicamente secuencias de comandos por lotes.
Comenzamos con un
@
signo, para suprimir el eco de la solicitud (C:\...\path>
), luego ejecutamos el comando PowershellInvoke-WebRequest
(con su aliasiwr
) y extraemos lacontent
parte de eso.Experimenté con no usar
(...).content
y, en cambio, solo ejecutar el comando y extraer la información real de la salida completa, usando el lote. Pero eso resultó ser mucho más largo que esta solución, así que lo guardé.Probado en Windows 10.0.15063.
fuente
R,
142,140, 137 bytesProbado en win10 y R (3.4.1).
Gracias por @ Bruce-Forte por la URL corta.
Versión sin golf:
fuente
a <- nchar(x)
cona=nchar(x)
Python 2.7.13 128 bytes
fuente
Bash + Curl, 24 bytes
fuente
MS-SQL, 59 bytes
Devuelve la dirección IP orientada al cliente de la instancia de SQL que ejecuta la consulta.
fuente
VBA, 58 bytes
Whoops, no maneja la dirección local - corrección en progreso
Función de ventana inmediata anónima VBE que no toma entrada y emite la dirección IP del usuario a través de una ventana de Internet Explorer
fuente