Added Files
This commit is contained in:
		
							parent
							
								
									579043aa34
								
							
						
					
					
						commit
						6be83bd6c1
					
				
							
								
								
									
										64
									
								
								FQDN-Updater.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								FQDN-Updater.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,64 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # Replace 'your_fqdn_here.com' with the actual FQDN you want to update | ||||
| fqdn="your_fqdn_here.com" | ||||
| 
 | ||||
| # Path to the log file where the IP address will be recorded | ||||
| log_file="/path/to/ip_log.txt" | ||||
| 
 | ||||
| # Function to resolve the IP address from FQDN | ||||
| get_ip_address() { | ||||
|     dig +short $fqdn | ||||
| } | ||||
| 
 | ||||
| # Function to get the last recorded IP address from the log file | ||||
| get_last_ip_address() { | ||||
|     if [[ -f "$log_file" ]]; then | ||||
|         tail -n 1 "$log_file" | ||||
|     else | ||||
|         echo "" | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| # Check if 'ufw' is installed | ||||
| if ! command -v ufw &> /dev/null; then | ||||
|     echo "UFW is not installed. Please install it first." | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Check if 'dig' (from 'dnsutils') is installed | ||||
| if ! command -v dig &> /dev/null; then | ||||
|     echo "The 'dnsutils' package is not installed. Please install it first." | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Enable UFW if it's not already enabled | ||||
| ufw --force enable | ||||
| 
 | ||||
| # Get the current and last recorded IP addresses | ||||
| current_ip=$(get_ip_address) | ||||
| last_ip=$(get_last_ip_address) | ||||
| 
 | ||||
| if [[ -z $current_ip ]]; then | ||||
|     echo "Unable to resolve the IP address for '$fqdn'." | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| if [[ $current_ip != $last_ip ]]; then | ||||
|     # Remove the old IP address from UFW rules if it exists | ||||
|     if [[ -n $last_ip ]]; then | ||||
|         ufw delete allow from $last_ip | ||||
|     fi | ||||
| 
 | ||||
|     # Allow traffic from the obtained IP address | ||||
|     ufw allow from $current_ip | ||||
|     ufw reload | ||||
| 
 | ||||
|     # Log the current IP address to the file | ||||
|     echo "$current_ip" >> "$log_file" | ||||
|      | ||||
|     echo "UFW has been updated to allow traffic from $fqdn ($current_ip)." | ||||
| else | ||||
|     echo "IP address for '$fqdn' has not changed. No updates needed." | ||||
| fi | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user