我正在使用鱿鱼,需要做一些自定义。 我有一个IP地址列表,需要采取一些行动。不能使用squid的acl指令,因为其他服务器需要采取最终操作。
我需要检查被访问的URL是否是有效的IP地址。如果是,我需要在标题中进行一些更改。
我尝试通过正则表达式来做,似乎并没有很好地运作。
^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
如果是IPv6地址,它也会失败。
是否有可以确定的C / C ++ API?
请建议。
答案 0 :(得分:0)
你可能想要inet_pton - 它在失败时返回-1,并支持IPv4和未来的IPv6地址。如果您仍需要编写自己的IP地址系统,请记住标准的32位十六进制数是有效的IP地址,但不是点分十进制表示法。
此功能既可以验证地址,也可以在相关的套接字调用中使用相同的地址。
(来自Raymond Martineau的帖子:How do you validate that a string is a valid IPv4 address in C++?)