在服务器上的设置文件中查找硬编码的 IP 地址
在准备多个服务器的重新 IP 时,我打算搜索设置文件中出现的服务器上的所有 IP 地址。
一个简单的第一次尝试:
grep -e "[0-9]*\\.[0-9]*\\.[0-9]"
..产生误报,因为没有数字的字符串也是允许的。此外,它还发现 1.2.3.4.5 等版本号不是有效的 IP 地址。
我确信有人已经考虑过这个问题,并想出了完美的 IP 地址查找正则表达式 grep 来涵盖所有例外情况。
In preparation for a re-IP of several servers I intend to search for all IP addresses on the servers which occur in settings files.
A simpleminded first attempt:
grep -e "[0-9]*\\.[0-9]*\\.[0-9]"
..produces false positives because strings with no digits is also allowed. Also, it finds version numbers like 1.2.3.4.5 which are not valid IP addresses.
I'm sure that someone has thought about this and come up with the perfect IP address finding regular expression grep that covers all exceptions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
怎么样:
使用
-e
"extended" grep 运行。它不会匹配任何重复组数超过 4 个或大于 299 的数字(最好排除大于 255 的数字)。显然,这仅适用于 IPv4 地址...
编辑:
构建于 这个问题的答案,这是一个仅匹配有效 IPv4 地址的版本(我对其进行了修改,因此它不会匹配超过四个组的数字):
How about this:
Run with
-e
"extended" grep. It won't match any numbers with more than four repeated groups, or that are greater than 299 (next best to excluding greater than 255).Obviously, this only works for IPv4 adresses...
EDIT:
Building on this question's answer, here's a version that only matches valid IPv4 addresses (I modified it so it won't match numbers with more than four groups):