You can use regular expressions and the –match operator to validate user input. Here’s a loop that keeps asking until the user enters a valid IP address:
$pattern = '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' do { $ip = Read-Host 'Enter IP' $ok = $ip -match $pattern if ($ok -eq $false) { Write-Warning ("'{0}' is not an IP address." -f $ip) Write-Host -fore Red -back White 'TRY AGAIN!' } } until ( $ok )