How To Search For Ips In Files Using Python?
Solution 1:
For IPv4 Addresses you can use the Regex provided by Regular-Expression.info. This will ensure that your IP Address is actually valid.
Matching an IP address is another good example of a trade-off between regex complexity and exactness. \b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b will match any IP address just fine, but will also match 999.999.999.999 as if it were a valid IP address. Whether this is a problem depends on the files or data you intend to apply the regex to. To restrict all 4 numbers in the IP address to 0..255, you can use this complex beast: \b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b Analyze this regular expression with RegexBuddy (everything on a single line). The long regex stores each of the 4 numbers of the IP address into a capturing group. You can use these groups to further process the IP number.
If you don't need access to the individual numbers, you can shorten the regex with a quantifier to: \b(?:(?: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]?)\b Analyze this regular expression with RegexBuddy. Similarly, you can shorten the quick regex to \b(?:\d{1,3}.){3}\d{1,3}\b Analyze this regular expression with RegexBuddy
Solution 2:
Regex!
re.sub('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}','CENSORED_IP',data)
Worthy of note, this also matches things like 999.999.999.999. If that's a problem, you will have to get a regex that is a little more complicated. Furthermore, this only works on IPv4 Addresses.
On only valid IP's:
re.sub('(?:(?: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]?)','CENSORED_IP',data)
Source: Regex Source
Post a Comment for "How To Search For Ips In Files Using Python?"