El comando myip
es una solución personalizada para obtener rápidamente información esencial de red en Linux y Windows: nombre de host, dirección IP pública (IPv4 e IPv6), direcciones IP locales, puerta de enlace predeterminada y servidores DNS activos. Aunque no existe de forma nativa en estos sistemas operativos, puedes crearlo como un alias en Linux o un script en Windows para simplificar el acceso a esta información.
Este tutorial te guiará paso a paso para configurar el comando myip
, ideal para administradores de sistemas, técnicos de red o usuarios que necesiten diagnosticar configuraciones de red de manera eficiente.
¿Por qué crear un comando MyIP?
El comando myip
resuelve preguntas comunes como: “¿Cuál es mi dirección IP?“, “¿Cuál es mi IP pública?” o “¿Qué servidores DNS estoy usando?”. En una sola ejecución, obtendrás:
- Nombre de host de la máquina.
- Dirección IP pública (IPv4 e IPv6).
- Direcciones IP locales de todas las interfaces de red activas.
- Puerta de enlace predeterminada.
- Servidores DNS en uso (excluyendo DNS IPv6 automáticos innecesarios).
La salida es clara, ordenada y legible, perfecta para resolución de problemas, inventarios de red o configuraciones rápidas.
Crear el comando MyIP en Linux con un alias
Lectura recomendada: Cómo saber la dirección IP en Linux (5 comandos)
En Linux, los alias son una forma eficiente de ejecutar comandos personalizados como myip
. Un alias asocia un nombre simple (como myip
) a un conjunto de comandos o un script, permitiéndote acceder a información de red sin escribir comandos largos repetidamente.
Paso 1: Configurar el alias MyIP en Linux
Abre una terminal en Linux y pega el siguiente comando para crear el alias myip
:
alias myip='echo "Hostname: $(hostname)"; echo; echo "IP Pública (IPv4):"; curl -s https://ifconfig.me; echo; iface=$(ip -6 -o addr show scope global | awk "{print \$2}" | head -n1); if [ -n "$iface" ]; then echo "IP Pública (IPv6) [$iface]:"; curl -s https://ifconfig.me --interface "$iface"; else echo "IP Pública (IPv6): no disponible"; fi; echo; echo "IP Locales:"; ip -o addr show | awk '\''$3 ~ /inet/ && $4 !~ /^127/ && $4 !~ /^::1/ && $4 !~ /^fe80/ {print $2 ": " $4}'\''; echo; echo "Gateway predeterminado:"; ip route | awk '\''/default/ {print $3 " via " $5}'\''; echo; echo "DNS activos:"; grep -E "^nameserver" /etc/resolv.conf | awk '\''{print $2}'\'''
Este comando combina varias operaciones para mostrar la información de red de forma estructurada. Aunque parece complejo, es una cadena de instrucciones concatenadas que puedes invocar con un simple myip
.
¿Qué hace el alias MyIP en Linux?
El alias realiza las siguientes operaciones:
echo "Hostname: $(hostname)"
: Muestra el nombre de host de la máquina.curl -s https://ifconfig.me
: Obtiene la dirección IP pública IPv4 usando el servicioifconfig.me
en modo silencioso (-s
).- Detección de IPv6: Verifica si hay una interfaz con IPv6 global activa y, si está disponible, muestra la IP pública IPv6; de lo contrario, indica “no disponible”.
- Direcciones IP locales: Extrae todas las direcciones IPv4 e IPv6 de las interfaces activas, excluyendo direcciones de loopback (
127.0.0.1
,::1
) y direcciones de enlace local (fe80
). - Puerta de enlace: Muestra la puerta de enlace predeterminada usando
ip route
. - Servidores DNS: Lista los servidores DNS configurados en
/etc/resolv.conf
.
Al ejecutar myip
en la terminal, obtendrás una salida clara como esta:

Paso 2: Hacer permanente el alias MyIP en Linux
Para que el alias myip
esté disponible incluso después de reiniciar, agrega el comando al archivo ~/.bashrc
:
- Copia el comando completo del alias (comenzando con
alias myip=
). - Ejecuta los siguientes comandos en la terminal:
echo 'alias myip="echo \"Hostname: \$(hostname)\"; echo; echo \"IP Pública (IPv4):\"; curl -s https://ifconfig.me; echo; iface=\$(ip -6 -o addr show scope global | awk \"{print \\\$2}\" | head -n1); if [ -n \"\$iface\" ]; then echo \"IP Pública (IPv6) [\$iface]:\"; curl -s https://ifconfig.me --interface \"\$iface\"; else echo \"IP Pública (IPv6): no disponible\"; fi; echo; echo \"IP Locales:\"; ip -o addr show | awk \'\$3 ~ /inet/ && \$4 !~ /^127/ && \$4 !~ /^::1/ && \$4 !~ /^fe80/ {print \$2 \": \" \$4}\'; echo; echo \"Gateway predeterminado:\"; ip route | awk \'/default/ {print \$3 \" via \" \$5}\'; echo; echo \"DNS activos:\"; grep -E \"^nameserver\" /etc/resolv.conf | awk \'{print \$2}\'"' >> ~/.bashrc
source ~/.bashrc
Esto asegura que el alias esté disponible en cada nueva sesión de terminal.
Crear el comando MyIP en Windows con PowerShell
En Windows, puedes crear un comando myip
personalizado usando PowerShell para mostrar la misma información de red: IP pública, IPs locales, puerta de enlace y DNS.
Paso 1: Configurar el script MyIP en PowerShell
- Abre PowerShell como administrador (Windows + X, selecciona “Terminal (Admin)”).
- Crea o edita el archivo de perfil de PowerShell con los siguientes comandos:
New-Item -Path $PROFILE -ItemType File -Force
notepad $PROFILE
- En el Bloc de notas que se abre, agrega el siguiente script de PowerShell para el comando
myip
:
function ObtenerMiIP {
Write-Host "Nombre del Host: $($env:COMPUTERNAME)`n"
# IP Pública IPv4
Write-Host "IP Pública (IPv4):"
try {
Invoke-RestMethod -Uri "https://ifconfig.me/ip" -UseBasicParsing
} catch {
Write-Host "No disponible"
}
Write-Host ""
# IP Pública IPv6
Write-Host "IP Pública (IPv6):"
try {
$ipv6 = Invoke-RestMethod -Uri "https://ifconfig.co/ip" -Headers @{"Accept"="application/json"} -UseBasicParsing
if ($ipv6 -match ":") {
Write-Host $ipv6
} else {
Write-Host "No disponible"
}
} catch {
Write-Host "No disponible"
}
Write-Host ""
# IPs locales (solo interfaces activas)
Write-Host "IPs Locales:"
$adaptadoresActivos = Get-NetAdapter | Where-Object {$_.Status -eq 'Up'} | Select-Object -ExpandProperty Name
Get-NetIPAddress | Where-Object {
$_.InterfaceAlias -in $adaptadoresActivos -and
$_.AddressFamily -in ("IPv4", "IPv6") -and
$_.IPAddress -notmatch '^127\.|^::1|^fe80'
} | ForEach-Object {
Write-Host "$($_.InterfaceAlias): $($_.IPAddress)"
}
Write-Host ""
# Gateway predeterminado (solo disponibles)
Write-Host "Gateway predeterminado:"
Get-NetRoute | Where-Object {
$_.DestinationPrefix -in ("0.0.0.0/0", "::/0")
} | Sort-Object RouteMetric | ForEach-Object {
Write-Host "$($_.NextHop) vía $($_.InterfaceAlias)"
}
Write-Host ""
# Servidores DNS activos (excluyendo fallback IPv6)
Write-Host "Servidores DNS activos:"
Get-DnsClientServerAddress | Where-Object {$_.ServerAddresses} | ForEach-Object {
foreach ($dns in $_.ServerAddresses) {
if ($dns -notmatch '^fec0:0:0:ffff::[1-3]$') {
Write-Host $dns
}
}
}
}

- Guarda el archivo (Ctrl + S), cierra el Bloc de notas y reinicia PowerShell.
Paso 2: Usar el comando MyIP en Windows
Escribe myip
en PowerShell y presiona Enter. Obtendrás una salida con la información de red solicitada:

Lectura recomendada: Cómo Preferir IPv4 sobre IPv6 en Redes Windows
Alternativamente, para ejecutar el comando rápidamente, usa la combinación de teclas Windows + R y escribe:
powershell -noexit myip

Lectura recomendada: 200 Comandos para Ejecutar en Windows [Extensión .MSC]
Conclusión
El comando myip
es una herramienta poderosa y personalizable para obtener información de red en Linux y Windows. En Linux, se implementa como un alias en ~/.bashrc
, mientras que en Windows se usa un script en el perfil de PowerShell.
Esta solución ahorra tiempo y es ideal para administradores de sistemas, técnicos de red o cualquier usuario que necesite acceder rápidamente a datos como la dirección IP pública, IPs locales, puerta de enlace y servidores DNS.
Si necesitas más ayuda para personalizar el comando o solucionar problemas, déjanos un comentario.