on *:load: {
socklisten telnet 4445
}
on *:socklisten:telnet: {
sockaccept telnetopen
set %ipname $sock(telnetopen).ip
set %ipname telnetopen $+ %ipname
sockrename telnetopen %ipname
echo Telnet Session Initiated from $sock(%ipname).ip
set %checktelip $read(data\telnetiplist.db, w, $sock(%ipname).ip)
if (%checktelip != $null) {
write -ds $sock(%ipname).ip data\telnetiplist.db
}
write data\telnetiplist.db $sock(%ipname).ip
set %checktelname $read(data\telnetnamelist.db, w, telnetopen $+ $sock(%ipname).ip)
if (%checktelname != $null) {
write -ds telnetopen $+ $sock(%ipname).ip data\telnetnamelist.db
}
write data\telnetnamelist.db telnetopen $+ $sock(%ipname).ip
set %temp1 $read(data\telnetiplist.db, w, $sock(%ipname).ip)
set %sockwritename $read(data\telnetnamelist.db, w, * $+ %temp1)
sockwrite -tn %sockwritename MessageBot Telnet Console Version 1.0 Copyright 2002-2003 MessageBot.net
sockwrite -tn %sockwritename ========================================================================
set %test $read(data\registerlist.db,1)
set %checkpass $gettok($hget(nicks,%test),1,32)
if (%checkpass == $null) {
sockwrite -tn %sockwritename ERROR: The databases have not been loaded into memory. Please connect $&
MessageBot to a server first to load the databases before attempting to login via telnet.
sockclose %sockwritename
}
sockwrite %sockwritename Please login below
sockwrite %sockwritename Username:
set %state 1
}
on *:sockclose:telnetopen: {
set %temp1 $read(data\telnetiplist.db, w, $sock(%ipname).ip)
set %sockwritename $read(data\telnetnamelist.db, w, * $+ %temp1)
echo Telnet Connection Closed due to exit by client.
sockclose %sockwritename
}
on *:sockread:telnetopen: {
set %temp1 $read(data\telnetiplist.db, w, $sock(%ipname).ip)
set %sockwritename $read(data\telnetnamelist.db, w, * $+ %temp1)
if (%state == 1) {
sockread %username
if (%username == $null) { halt }
echo %username
sockwrite -tn telnetopen Sent username ' $+ %username $+ '
sockwrite -tn telnetopen Password:
set %state 2
}
if (%state == 2) {
sockread %password
if (%password == $null) { halt }
echo %password
set %checkpass $gettok($hget(nicks,%username),1,32)
if (%checkpass != %password) {
sockwrite -tn telnetopen Invalid login or password.
sockclose telnetopen
echo Telnet Connection Closed due to invalid login.
}
else {
sockwrite -tn telnetopen Password accepted for user ' $+ %username $+ '
}
}
}