Advertisement
Sergio_Istea

ip_assigment.sh

Oct 24th, 2023 (edited)
948
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.07 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # definicion de una lista con las id de red para '192.168.0.???'.
  4.  
  5. ip_addresses=(100 101 102)
  6.  
  7.  
  8.  
  9. # Creamos un bucle que recorre la lista, la variable 'host_id' asumira
  10. # el valor de cada elemento de la lista en cada vuelta.
  11.  
  12. for host_id in "${ip_addresses[@]}";do
  13.  
  14.     # en cada vuelta se hace un ping a la direccion IP que se completa con
  15.     # el valor que tenga '$host_id' en la vuelta.
  16.    
  17.     if ! ping -c 1 192.168.0.$host_id > /dev/null 2>&1; then
  18.        
  19.         # Si el ping no responde entonces significa que la ip esta libre
  20.         # y se puede asignar al host, para ello se sobre escribe el fichero
  21.         # de configuraicon '/etc/network/interfaces' (Debian).
  22.  
  23.         echo "source /etc/network/interfaces.d/*
  24. auto lo
  25. iface lo inet loopback
  26.  
  27. allow-hotplug enp0s3
  28. iface enp0s3 inet static
  29.     address 192.168.0.$host_id
  30.     netmask 255.255.255.0
  31.     gateway 192.168.0.1" > /etc/network/interfaces
  32.  
  33.     # se reinica el servicio de red del sistema operativo para aplicar los cambios.
  34.  
  35.     systemctl restart networking.service
  36.  
  37.     # una vez hecho se sale del programa.
  38.    
  39.     exit
  40.    
  41.     fi 
  42.  
  43. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement