MIRC 134
Link Detector By masterzwerg on 2nd February 2023 02:55:27 PM
  1. on *:text:*:#: {
  2.   if (https:// isin $1-) {
  3.     sockclose linkchecker
  4.     set %link $remove($matchtok($1-,https://,1,32),https://)
  5.     set %linkchan $chan
  6.     set %actlink $matchtok($1-,https://,1,32)
  7.     if (/ !isin %link) { set %link %link $+ / }
  8.     sockopen linkchecker $remove($left(%link,$pos(%link,/,1)),/) 80
  9.     halt
  10.   }
  11.   if (http:// isin $1-) {
  12.     sockclose linkchecker
  13.     set %link $remove($matchtok($1-,http://,1,32),http://)
  14.     set %linkchan $chan
  15.     set %actlink $matchtok($1-,http://,1,32)
  16.     if (/ !isin %link) { set %link %link $+ / }
  17.     sockopen linkchecker $remove($left(%link,$pos(%link,/,1)),/) 80
  18.     halt
  19.   }
  20.   if (www. isin $1-) {
  21.     sockclose linkchecker
  22.     set %link $matchtok($1-,www.,1,32)
  23.     set %linkchan $chan
  24.     set %actlink $matchtok($1-,www.,1,32)
  25.     if (/ !isin %link) { set %link %link $+ / }
  26.     sockopen linkchecker $remove($left(%link,$pos(%link,/,1)),/) 80
  27.     halt
  28.   }
  29. }
  30.  
  31. on *:sockopen:linkchecker: {
  32.   if $sockerr > 0 { sockclose $sockname | halt }
  33.   sockwrite -n $sockname GET / $+ $right(%link,$calc($len(%link)- $pos(%link,/,1))) HTTP/1.1
  34.   sockwrite -n $sockname Host: $remove($left(%link,$pos(%link,/,1)),/)
  35.   sockwrite -n $sockname $crlf
  36. }
  37. on *:sockread:linkchecker: {
  38.   if $sockerr > 0 { sockclose $sockname | halt }
  39.   sockread %linkh
  40.   if (%delbug != $null) && ($len(%linkch) <= 150) && (</title> !isin %linkh) { set %linkch %linkch %linkh }
  41.   if (%delbug != $null) && (</title> isin %linkh) {
  42.     msg %linkchan $replace(%linkch,&quot;,",&apos;,',&amp;,&,&lt;,<,&gt;,>,&copy;,�,&reg;,�,&trade;,�,&euro;,�,&pound;,�,&yen;,�) (3 %actlink )
  43.     unset %delbug
  44.     sockclose $sockname
  45.     halt
  46.   }
  47.   if (<title> isin %linkh) {
  48.     set %linkch $remove($left(%linkh,$pos(%linkh,</title>,1)),</title>)
  49.     set %linkch $right(%linkch,$calc($len(%linkch)- $pos(%linkch,<title>,1) -6))
  50.     set %linkch $left(%linkch,$calc($len(%linkch)-1))
  51.     set %delbug 1
  52.     if (%linkch != $null) {
  53.       msg %linkchan  $replace(%linkch,&quot;,",&apos;,',&amp;,&,&lt;,<,&gt;,>,&copy;,�,&reg;,�,&trade;,�,&euro;,�,&pound;,�,&yen;,�) (3 %actlink )
  54.       sockclose $sockname
  55.       unset %delbug
  56.       halt
  57.     }
  58.   }
  59. }
  60. if (*HTTP*302* iswm %x) set -e %web.tmp 1
  61. if (Location: isin %x) {
  62.   if ($mtc(%x)) {
  63.     tokenize 32 %e
  64.     sockclose %z
  65.     soc $regml(web,1) $iif($regml(web,2),$v1,/) $iif($3,$3,1) %z $iif(%web.tmp,Redirected)
  66.     unset %web.tmp
  67.   }
  68. }
  69. on *:sockclose:website.*: unset $+(%,$sockname)
  70. alias -l soc {
  71.   var %x = $iif($4,$4,$+(website.,$r(a,z),$r(a,z),$r(a,z),$r(0,9),$r(0,9),$r(0,9)))
  72.   set -e $+(%,%x) $1-2 $iif($3 ischan && $me ison $3,$3) $iif($5,$ntc($5))
  73.   sockopen %x $1 443
  74. }
  75. alias -l mtc return $regex(web,$1,/(?:https?:\/\/)?((?:www\.)?[\w-.]+\.(?>[a-z]{2,4})(?![a-z]))([\w-_#?=%.\/&?]+)?/ig)
  76. alias -l ptc return $replacecs($1,&mdash;,-,&quot;,",&amp;,&,&lt;,<,&gt;,>,?,$chr(233),?,$chr(231),&ccedil;,$chr(231),&ntilde;,$chr(241),?,$chr(209),?,$chr(220),?,$chr(244))
  77. alias -l btc return $+($chr(2),$1,$chr(2))
  78. alias -l ntc return $+($chr(40),$1,$chr(41))
  79. alias rtc {
  80.   if ($mtc($2-)) && (!%website.flood [ $+ [ $regml(web,1) ] ]) {
  81.     var %x = 1, %v
  82.     while ($regml(web,%x)) {
  83.       var %z = $iif(/ isin $regml(web,$calc(%x +1)),$v2,/), %i = $regml(web,%x)
  84.       if (/ !isin %i) && (!$istok(%v,%i,32)) {
  85.         soc %i %z $1
  86.         %v = %v %i
  87.       }
  88.       inc %x 1
  89.     }
  90.     set -eu5 %website.flood $+ $regml(web,1) 1
  91.   }
  92. }

Serverfreakz - Nopaste ist f;r Quelltexte und generellen Debugging Text.

Login oder Registrieren um zu bearbeiten, löschen, um deine Pastes zu verfolgen und mehr.

Raw Paste

Login oder Registrieren um diesen Paste zu bearbeiten oder zu forken. Es ist kostenlos.