在我们的 Squid 服务器上,管理员设置了一个新的正则表达式规则:
^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
我知道它代表 IP 地址,但它允许所有 URL 通过,只有 ping 外部地址已停止。UltraSurf 等隧道软件也已停止连接到服务器。Skype 也无法连接。
请解释这是如何工作的!谢谢。
我不确定您对 Squid 服务器的特定问题,但这是正则表达式的作用:
[0-9]+
表示“任何数字一次或多次”,因此它匹配一个以数字开头一次或多次,后跟一个点,后跟一个数字一次或多次,然后是一个点,然后是一个数字的字符串或多次,然后是点,然后是数字一次或多次......然后是其他任何东西。本质上,它匹配任何 IP 地址,因此它不会过滤掉任何东西。它还将匹配甚至不是有效 IP 地址的东西,例如123456.123456.123456.123456
or1.1.1.1
或125.252.252.252asdf
。
Paolo 已经很好地解释了 Regex 的含义!如前所述,当前使用的正则表达式太弱(或者我应该说太严格了!)
如果您想要一个更好的正则表达式来匹配 IP 地址,请参阅此页面。