regex - 什么正则表达式将匹配所有环回地址?

标签 regex localhost loopback

我有一个应用程序,在使用 localhost127.0.0.1::1 或任何环回地址时必须警告用户(目标主机用于数据库到数据库的连接,不一定在应用程序的环境内部)。这变得很复杂,因为地址如下......

  • 127.1
  • 127.0.01
  • 127.0000.0000.1
  • 127.0.0.254
  • 127.63.31.15
  • 127.255.255.254
  • 0::1
  • 0000::0001
  • 0000:0:0000::01
  • 0000:0000:0000:0000:0000:0000:0000:0001

...将由使用代码正确解析,并将解析为环回。

什么是匹配 IPv4 和 IPv6 环回地址任意排列的正则表达式?

最佳答案

经过一段时间的摆弄 RegexBuddy (对于测试驱动的正则表达式构建来说,这是一个真正出色的工具),我想出了这个:

^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$

此正则表达式匹配

字符串“localhost”

  • 本地主机
  • LOCALHOST

IPv4 环回地址的这些排列

  • 127.0.0.1
  • 127.0.0.001
  • 127.0.00.1
  • 127.00.0.1
  • 127.000.000.001
  • 127.0000.0000.1
  • 127.0.01
  • 127.1
  • 127.001
  • 127.0.0.254
  • 127.63.31.15
  • 127.255.255.254

IPv6环回地址的这些排列

  • 0:0:0:0:0:0:0:1
  • 0000:0000:0000:0000:0000:0000:0000:0001
  • ::1
  • 0::1
  • 0:0:0::1
  • 0000::0001
  • 0000:0:0000::0001
  • 0000:0:0000::1
  • 0::0:1

此正则表达式不匹配

有效的服务器名称

  • 服务器名称
  • 子域名.domain.tld

这些有效的 IPv4 地址

  • 192.168.0.1
  • 10.1.1.123

这些有效的 IPv6 地址

  • 0001::1
  • 死:牛肉::1
  • ::dead:beef:1

关于regex - 什么正则表达式将匹配所有环回地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8426171/

相关文章:

javascript - 使用 Loopback 加载配置参数的最合适方法是什么?

regex - 使用 .htaccess 限制外部访问我的内部网

javascript - 用Regex(正则表达式)条件匹配javascript用变量替换部分字符串

mongodb - 是否有像 mongoosastic 这样的插件可以与环回一起使用?

django - 外部访问本地主机?

php - 这个正则表达式是正确的,但在本地主机中不起作用

javascript - 函数内部的函数不等待 JavaScript 中的 Promise

java - 拆分字符串不包含 java 中的字符串

python - 用于过滤与模式匹配的字符串列表的正则表达式

php - 未捕获的语法错误 : Unexpected token ILLEGAL load-scripts. php:1