Anonymize IP (v4 and v6) in text file with Powershell
Manipulating Regex for IPv4 and IPv6 and replacing by fake IP address in a readed log file
Anonymize IP address in text file
Section titled “Anonymize IP address in text file”# Read a text file and replace the IPv4 and IPv6 by fake IP Address
# Describe all variables$SourceFile = "C:\sourcefile.txt"$IPv4File = "C:\IPV4.txt"$DestFile = "C:\ANONYM.txt"$Regex_v4 = "(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"$Anonym_v4 = "XXX.XXX.XXX.XXX"$Regex_v6 = "((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b).){3}(b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b))|(([0-9A-Fa-f]{1,4}:){0,5}:((b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b).){3}(b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b))|(::([0-9A-Fa-f]{1,4}:){0,5}((b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b).){3}(b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))"$Anonym_v6 = "YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY"$SuffixName = "-ANONYM."$AnonymFile = ($Parts[0] + $SuffixName + $Parts[1])
# Replace matching IPv4 from sourcefile and creating a temp file IPV4.txtGet-Content $SourceFile | Foreach-Object {$_ -replace $Regex_v4, $Anonym_v4} | Set-Content $IPv4File
# Replace matching IPv6 from IPV4.txt and creating a temp file ANONYM.txtGet-Content $IPv4File | Foreach-Object {$_ -replace $Regex_v6, $Anonym_v6} | Set-Content $DestFile
# Delete temp IPV4.txt fileRemove-Item $IPv4File
# Rename ANONYM.txt in sourcefile-ANONYM.txt$Parts = $SourceFile.Split(".")If (Test-Path $AnonymFile){ Remove-Item $AnonymFile Rename-Item $DestFile -NewName $AnonymFile } Else { Rename-Item $DestFile -NewName $AnonymFile}