Busqueda sobre Linux y software libre

Noticias sobre linux y software libre - Google 

Obtener número IP en Linux Bash tip - Número IP


Primera forma

Un interesante tip de otra forma de obtener el numero ip de un
interface de red en linux bash:


# ifconfig eth0 | awk '/inet addr/ {split ($2,A,":"); print A[2]}'


Fuente:


http://adf.ly/1ecLp3


Segunda forma

Buena! ahí te van las que yo uso...

# perl -e '`ifconfig eth0`=~/inet [^:]*:([^ ]+)/; print $1;'
# ifconfig eth0|egrep '^ +inet '|sed -r 's/[^:]+:([^ ]+).+/\1/'

3ra forma

Esto lo que uso en casa, para actualizar mi servidor casero con DynDNS:

en /usr/local/bin/getip.py:

#!/usr/bin/python
import socket
import fcntl
import struct
import sys

# Receta de http://code.activestate.com/recipes/439094/
def getip(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
except:
return 'No such device'

if __name__ == "__main__":
# Se que puedo usar la libreria getopt ... pero esto me parece mas simple
try:
ifname = sys.argv[1]
except:
ifname = 'lo' # Si no damos una interfaz de red, usamos la por defecto
print getip(ifname)

## Fin getip.py

Probando
mariocesar@laptop:~$ getip.py
127.0.0.1
mariocesar@laptop:~$ getip.py wlan0
192.168.1.90
mariocesar@laptop:~$ getip.py eth0
201.222.109.231
mariocesar@laptop:~$ getip.py eth1
No such device
mariocesar@laptop:~$ getip.py eth2
No such device

no estoy seguro, pero talves funcione en windows. No se si alguien tiene todavía instalado un windows para probarlo. Me da curiosidad.

Ads by CJ - Linux Foundation

Share This