]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
IPv4 and IPv6 addresses are picked up in URLs
authorCraig Andrews <candrews@integralblue.com>
Tue, 18 Aug 2009 18:15:55 +0000 (14:15 -0400)
committerCraig Andrews <candrews@integralblue.com>
Tue, 18 Aug 2009 18:15:55 +0000 (14:15 -0400)
Added ".onion" as a possible TLD

lib/util.php

index c8e318efec6e4491157e16d6444ab46de7db84f7..5ecee691564447341fd5e72953fe2be5409993db 100644 (file)
@@ -417,11 +417,31 @@ function common_replace_urls_callback($text, $callback, $notice_id = null) {
             '(?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|irc)://'.
             '|'.
             '(?:mailto|aim|tel|xmpp):'.
+        ')?'.
+        '('.
+        '(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'. //IPv4
+        '|(?:'.
+            '([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,6}|'. //IPv6
+            '([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,5}|'.
+            '([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,4}|'.
+            '([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,3}|'.
+            '([0-9a-f]{1,4}:){1,5}(:[0-9a-f]{1,4}){1,2}|'.
+            '([0-9a-f]{1,4}:){1,6}(:[0-9a-f]{1,4}){1,1}|'.
+            '(([0-9a-f]{1,4}:){1,7}|:):|'.
+            ':(:[0-9a-f]{1,4}){1,7}|'.
+            '((([0-9a-f]{1,4}:){6})(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|'.
+            '(([0-9a-f]{1,4}:){5}[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|'.
+            '([0-9a-f]{1,4}:){5}:[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|'.
+            '([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|'.
+            '([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,3}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|'.
+            '([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,2}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|'.
+            '([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,1}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|'.
+            '(([0-9a-f]{1,4}:){1,5}|:):(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|'.
+            ':(:[0-9a-f]{1,4}){1,5}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}'.
+        ')|'.
+        '(?:[^.\s/:]+\.)+'. //DNS
+        '(?:museum|travel|onion|[a-z]{2,4})'.
         ')'.
-        '[^.\s]+\.[^\s]+'.
-        '|'.
-        '(?:[^.\s/:]+\.)+'.
-        '(?:museum|travel|[a-z]{2,4})'.
         '(?:[:/][^\s]*)?'.
     ')'.
     '#ix';