Anti-chat продолжение, или Nick Flooding II

Статья взята с http://www.antichat.ru

Предполагается что читатель знаком со статьей "Nick Flooding" и подумав что флудить чат какими-то цифрами полный отстой, решил прочитать продолжение:) Сдесь я написал о том как можно генерировать почти настоящие имена, например вы сами выбираете из чего будет состоять ник: буквы,  цифры, другие символы. В рассмотренном ниже примере, скрипт генерит ник из восьми символов, причем первая буква заглавная, а остальные прописные(Они отмечены галочками). Данный скрипт можно использовать взамен того который генерирует случайное число, тогда флуд будет больше похож на действия человека а не скрипта.

Пример работы скрипта, код с комментариями приведен ниже

Первый символ: Number Lowercase Uppercase Other
Остальные символы:  Number Lowercase Uppercase Other
Длина ника: Другие символы:
Generated nick:
Рассотрим на примере кода главной страницы чата:

<FORM action=http://www.domen.ru/cgi-bin/chat/chat.cgi method=post name="myform">
<!-- Еще тут может быть форма для ввода пароля, выбор цвета и т.д. -->
<input type=text name=nick size=20> <!-- Форма в которую вписывается ник при заходе в чат -->
<input type=button value="Generate Nick"><!-- В примере на кнопке написано Generate Nick, в чате может быть по другому  -->
</form>

А так выглядит этот код со "встроенным" скриптом написанным именно под него (я имею ввиду что в скрипте использованы те же названия форм), хоть он  с виду и большой, разобраться  не сложно даже тому кто не знает Java-script. Зеленым цветом написаны комментарии, их можно стереть.

<!-- Скрипт, который генерирует случайный набор символов с заданными параметрами. Там где указан набор символов, например var lowerChars = "abcdefghijklmnopqrstuvwxyz" английские можно поменять на русские -->
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getRandomNum(lbound, ubound) {
return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
function getRandomChar(number, lower, upper, other, extra) {
var numberChars = "23456789";
var lowerChars = "abcdefghijklmnopqrstuvwxyz";
var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
var charSet = extra;
if (number == true)
charSet += numberChars;
if (lower == true)
charSet += lowerChars;
if (upper == true)
charSet += upperChars;
if (other == true)
charSet += otherChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
function getnick(length, extraChars, firstNumber, firstLower, firstUpper, firstOther,
latterNumber, latterLower, latterUpper, latterOther) {
var rc = "";
if (length > 0)
rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther, extraChars);
for (var idx = 1; idx < length; ++idx) {
rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther, extraChars);
}
return rc;
}

// End -->
</script>



<center> <table width=80% border=0>
<tr align=center> <td>
<FORM action=http://www.domen.ru/cgi-bin/chat/chat.cgi method=post name="myform"><!-- Имя формы можете заменить на свое, только не забудьте везде поменять, далее выделено желтым цветом -->
<table border=0><tr> <td>

First character can be: <!-- Каким должен быть первый символ -->
</td><td>
<input type=checkbox name=firstNumber>Number
<input type=checkbox name=firstLower>Lowercase
<input type=checkbox name=firstUpper checked>Uppercase
<input type=checkbox name=firstOther>Other

</td></tr><tr><td>

Latter characters can be: <!-- Какими должны быть остальные символы-->
</td><td>
<input type=checkbox name=latterNumber>Number
<input type=checkbox name=latterLower checked>Lowercase
<input type=checkbox name=latterUpper>Uppercase
<input type=checkbox name=latterOther>Other
</td></tr><tr><td>

Длина ника:
</td><td>
<!-- Длина ника, в данном случае указано 8 символов -->
<input type=text name=nickLength size=3 value=8> 


<!-- Если требуется использовать какие-то другие символы, то их можно вписать сюда -->
<!-- Extra nick characters: --> 

Другие символы: <input type=text name=extraChars size=20>


</td></tr></table>
</td></tr> <tr align=center> <td>

Generated nick: 
<input type=text name=nick size=20> <!-- Форма в которую записывается, сгенерированный ник, называется nick, не забудьте что это имя тут в качестве примера, в разных чатах оно разное: user, username, nick..., поэтому скрипт пишите под название в вашем чате -->

<!-- Функция, выполняемая при нажатии кнопки -->
<input type=button value="Generate Nick" onClick="
document.myform.nick.value =
getnick(document.myform.nickLength.value, document.myform.extraChars.value,
document.myform.firstNumber.checked, document.myform.firstLower.checked,
document.myform.firstUpper.checked, document.myform.firstOther.checked,
document.myform.latterNumber.checked, document.myform.latterLower.checked,
document.myform.latterUpper.checked, document.myform.latterOther.checked);">
</form> <!-- Не забудьте написать закрывающийся тег form -->
</td></tr></table>

Остается только вписать в автозагрузку страницы выполнение этого скрипта и отправку данных на сервак (submit). Так будет выглядеть начало кода:
<HTML><HEAD><TITLE>Chat Flooder</TITLE>

<script Language="JavaScript">
function submit() {
Timer= setTimeout(" (document.myform.submit())",1000);
}
</script>

</HEAD>

<BODY  onload="document.myform.nick.value =
getnick(document.myform.nickLength.value, document.myform.extraChars.value,
document.myform.firstNumber.checked, document.myform.firstLower.checked,
document.myform.firstUpper.checked, document.myform.firstOther.checked,
document.myform.latterNumber.checked, document.myform.latterLower.checked,
document.myform.latterUpper.checked, document.myform.latterOther.checked);

submit()">

Далее сам код страницы и скрипт...

Рабочие примеры не выкладываю специально т.к. их придется все время апгрейдить, во-вторых, я думаю что флудить чаты - плохо:)

Предыдущая статья

X