Aquí está el script que usa el módulo de subproceso en el sistema operativo Linux.
La idea es utilizar el comando del sistema para hacer ping al IP del dispositivo remoto y obtener la dirección MAC de la lista ARP del sistema.
subproceso de importación
sistema de importación
- Cómo cambiar mi IP pública de estática a dinámica (DHCP)
- ¿Qué hay de malo con la expresión regular listada para usar con una dirección IP?
- ¿Por qué los conmutadores LAN necesitan direcciones IP para las conexiones?
- ¿Qué porcentaje de las solicitudes de oferta de RTB incluyen una dirección IP? De esos, ¿qué porcentaje incluye todos los octetos?
- ¿Cómo configurar una máscara de subred personalizada? ¿Qué medidas adicionales serían útiles?
ip = sys.argv [1]
# ping ip
p = subprocess.Popen ([‘ping’, ip, ‘-c1’], stdout = subprocess.PIPE,
stderr = subproceso.PIPE)
fuera, err = p.communicate ()
# lista de arp
p = subproceso.Popen ([” arp ‘,’ -n ‘], stdout = subproceso.PIPE,
stderr = subproceso.PIPE)
fuera, err = p.communicate ()
tratar:
arp = [x para x in out.split (‘\ n’) si ip in x] [0]
excepto IndexError:
sys.exit (1) # no se encontró ninguna entrada arp
más:
# obtener la dirección mac de la lista arp
# error: cuando la IP no existe en la red local
# esto imprimirá el nombre de la interfaz
print ” .join (arp.split ()). split () [2]
El script todavía tiene errores, cuando la IP no existe en la red local, imprimirá el nombre de la interfaz.