EpicNet.Ru - Форум IRC Чата

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » EpicNet.Ru - Форум IRC Чата » CREATE NEW SCRIPT - Создать новый mIRC скрипт » Identifier for checking the similarity of nicknames


Identifier for checking the similarity of nicknames

Сообщений 1 страница 3 из 3

1

I need an identifier for example $check_bdnick(MyNick, UserNick) that will return number "1" on match when someone will try to use my nickname by adding next to my nickname extra characters/letters/numbers.

I make a hash lsit adding safe clear nick "debian".

For example what to match when on join when somone use my safe nick "debian" adding letters numbers and char:

[flist]_debian
ddddebian
dgdg`debian
123debian
debian_
debian-
debiannnnn
debian`hfhf
debian1234
aeeega_debian_agaeg
hdfhdf_debian_hhfdh
fhdfh^debian-
debbbiaan
deeeebiannnn
ddeebbiiaann
deb1ian
debi1an
deb1an
deb10an
denian_
d`e`b`1`a`n
d-eb-i4n[/flist]

2

1395,373 написал(а):

I need an alias for example $check_bdnick(MyNick, UserNick) that will return number "1" on match when someone will try to use my nickname by adding next to my nickname extra characters/letters/numbers.

Я сделал небольшой скрипт, реализующий собственный идентификатор под названием "$checksimnicks()", который должен искать сходство между вашим ником и поддельными плохими никами. Если сходство между никами есть, то возвращается число "1", иначе идентификатор вернёт число "0".

Синтаксис: $checksimnicks(nickname, badnick)

Проверить можно через команду:  //echo -a $checksimnicks(debian,`deeeebiannnn_)

Итак, вы можете попробовать использовать этот скрипт:

Код:
alias checksimnicks {
  if (!$1) || (!$2) { echo -a Correct syntax:12 $eval($checksimnicks(nickname,badnick),0) | halt }
  ;------------------------------
  ; 1.Search for a nickname in a word with added prefixes
  if ($1 isin $2) return 1
  ;------------------------------
  ; 2.Search for a nickname in a word with repeated characters
  if ($1 isin $regsubex($2, /(.)(?=.*\1)/gi, $null)) return 1
  ;------------------------------
  ; 3.Search for a nickname in a word with numbers added inside
  if ($1 isin $regsubex($2, /\d/gi, $null)) return 1
  ;------------------------------
  ; 4.Search for a nickname in a word where some characters have been replaced with similar ones

  ; replaces similar chars with original ones (you can add more chars)
  var %rep_char $replace($2,1,i,4,a)

  ; removes all specified chars (you can add more chars)
  var %rem_char $remove(%rep_char,`,-,_,1,2,3,4,5,6,7,8,9,0)

  ; saving the processed word to a variable for comparison
  var %badnick %rem_char

  ; condition for check
  if ($1 isin %badnick) return 1
  ;------------------------------
  return 0
}

Я протестировал этот скрипт на всех из представленных вами комбинаций ников в примере, и даже больше.

Единственное, что невозможно сделать корректно, так это проверку "denian", т.к. по факту это уже совсем другое слово, в отличии от "de8ian", где цифра "8" похожа на букву "B".
Конечно можно добавить в коде проверку конкретно 3-го символа, но что делать, если это будет не 3-ий, а 5-ый символ, или их будет сразу несколько вместе с другими символами?
Таким образом, угадывая буквы, можно зайти слишком далеко и под равенство начнут попадать любые случайные ники, которые будут отдалённо похожи на ваш ник, но это будет ошибкой.
Это всё-равно, что пытаться найти сходство между словами "Банан" и "Баран", которые внешне по написанию схожи (на русском языке), но имеют совсем разные по смыслу значения.
Поэтому проверять и сравнивать между собой такие ники будет довольно проблематично, да и просто бессмысленно.

https://i.ibb.co/WvpbbYS/ueugf3e7rtgey32.png

[indent=1.5,0.5]
Вы также можете посмотреть эту тему.

Подпись автора

[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="http://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="http://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]

3

Thx Epic again for the help


Вы здесь » EpicNet.Ru - Форум IRC Чата » CREATE NEW SCRIPT - Создать новый mIRC скрипт » Identifier for checking the similarity of nicknames