Obtener direcciones IP en Python
-
Utilice la función
socket.gethostname()
para obtener la dirección IP local en Python -
Utilice la función
socket.getsockname()
para obtener la dirección IP local en Python -
Utilice el módulo
netifaces
para obtener la dirección IP local en Python
Las direcciones IP son una secuencia de dígitos que comienza desde 0.0.0.0 hasta 255.255.255.255, con cada número en los rangos de direcciones de 0 a 255. Puede identificar de forma única un dispositivo en una red.
En este artículo, obtendremos las direcciones IP locales usando Python.
Utilice la función socket.gethostname()
para obtener la dirección IP local en Python
Podemos usar el módulo socket
en Python para crear conexiones de red y enviar mensajes a través de la red.
La función gethostname()
devuelve el nombre de host del sistema bajo el cual Python se está ejecutando actualmente.
Por ejemplo,
import socket
print(socket.gethostbyname(socket.gethostname()))
Producción :
192.168.0.118
Utilice la función socket.getsockname()
para obtener la dirección IP local en Python
Si el dispositivo de la computadora tiene una ruta conectada a Internet, entonces podemos usar la función getsockname()
. Devuelve la dirección IP y el puerto en forma de tupla.
Vea el código a continuación.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
Producción :
192.168.0.112
Este método devuelve la IP principal de la máquina local, es decir, la ruta predeterminada.
También podemos usar esta función para crear una función definida por el usuario que no necesita ningún acceso a Internet enrutable.
Vea el código a continuación.
import socket
def extract_ip():
st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
st.connect(("10.255.255.255", 1))
IP = st.getsockname()[0]
except Exception:
IP = "127.0.0.1"
finally:
st.close()
return IP
print(extract_ip())
Producción :
192.168.0.112
El método anterior funciona en todas las interfaces. También funciona con todas las direcciones IP públicas, privadas y externas. Este método es eficaz en Linux, Windows y OSX.
Utilice el módulo netifaces
para obtener la dirección IP local en Python
El módulo netifaces
se utiliza para proporcionar información sobre las interfaces de red y su estado.
Podemos usarlo para obtener la dirección IP de la máquina local como se muestra a continuación.
from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
addresses = [
i["addr"]
for i in ifaddresses(ifaceName).setdefault(AF_INET, [{"addr": "No IP addr"}])
]
print(" ".join(addresses))
Producción :
No IP addr
No IP addr
No IP addr
No IP addr
192.168.0.104
127.0.0.1