清理 traceroute tracepath 的输入

清理 traceroute tracepath 的输入

嗨,我正在寻找一种方法来净化 traceroute/tracepath 的输入/实际上是任何 bash 输入。

例如:

root@meh:~# tracepath http://google.com/
gethostbyname2: Unknown host

我可能会在 bash 中设置一个别名,但需要先知道如何去做(也许是 shell 脚本?)。

干杯!

答案1

域名的有效字符集有限。唯一对 Bash 有特殊含义的字符是破折号:,-但很巧的是,它在域名开头无效。您可以使用这个正则表达式:"^[a-zA-Z0-9\.]\+[-a-zA-Z0-9\.]\+$"

此正则表达式将传递无效的域名,例如...-.-.-.-,但不会传递任何无效的人物并且不允许使用破折号作为第一个字符。应该使输入可以安全地用作 的参数tracepath

当然,由于您要验证此输入是否对 bash 安全,因此您必须使用 bash 以外的其他语言进行验证。在 bash 中,您无法安全地进行此验证。

相关内容