Primera forma
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/'
# 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.
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.