Ce script/addon est un "terminal" ou "telnet" si vous preferez.
Il permet de vous connecter a un serveur, d'envoyer des données et d'en recevoir (lol)
et aussi d'écouter un port en attendant une connexion dessus.
Son point fort : coloré :)
Nb : c'est ma première source ^^
Source / Exemple :
;################### TERM'Script ########################
;;;;;;;;;;;;;;;;;; By Mick@ël ;;;;;;;;;;;;;;;;;;;;;;;
On *:LOAD:{
window -ek0 @Bienvenue
aline @Bienvenue 12TERM'Script par 3Mick@ël
aline @Bienvenue 12Pour commencer tapez 3/term
aline @Bienvenue 12Pour toute question ou commentaire => 3mickael9@gmail.com 12 .
aline @Bienvenue 12L'aide est disponible en tapant 3help12 dans la fenetre @term'script.
aline @Bienvenue 12Vous pouvez voir une petite démo du fonctionnement en tapant 3/term-demo
}
On *:UNLOAD:{
sockclose term*
unset %term*
sockopen term.desinstall termscript.mickael.ouba.com 80
sockwrite -n term.desinstall GET /desinstall.php?time= $+ $time $+ &raison= $+ $replace($input(Pourquoi désinstallez vous se script ?,eoqd,Désinstallation,$null),$chr(32),+) HTTP/1.1
sockwrite -n term.desinstall Host: termscript.mickael.ouba.com
sockwrite -n term.desinstall $crlf
sockclose term.desinstall
window -ek0 @Desinstall
aline @Desinstall 2Désinstallation terminée
}
alias term {
window -ek0 @term'script
}
alias term-demo {
.timer010 1 0 /writeeditbox term'script 100 clear
.timer011 1 1 /writeeditbox term'script 100 close
.timer012 1 4 /writeeditbox term'script 100 open www.mirc.com 80
.timer013 1 8 /writeeditbox term'script 100 GET / HTTP/1.1
.timer014 1 10 /writeeditbox term'script 100 Host: www.mirc.com
.timer015 1 13 /writeeditbox term'script 100 crlf
.timer016 1 15 /writeeditbox term'script 100 close
.timer017 1 19 /writeeditbox term'script 100 quit
}
alias writeeditbox {
if (!$3) {
return
}
set %wbox.fenetre $1
set %wbox.interval $2
set %wbox.txt $3-
set %wbox.len $len(%wbox.txt)
set %wbox.count 0
if (!$window(%wbox.fenetre)) {
if ($mid(%wbox.fenetre,0,1) == $chr(35)) {
join %wbox.fenetre
}
else {
if ($mid(%wbox.fenetre,0,1) isnum || $mid(%wbox.fenetre,0,1) isletter) {
set %wbox.fenetre @ $+ %wbox.fenetre
}
window -ek0 %wbox.fenetre
}
}
while (%wbox.count <= %wbox.len) {
inc %wbox.count
if (%wbox.count > %wbox.len) {
.timer -m 1 $calc(%wbox.count * %wbox.interval) /editbox -n %wbox.fenetre $mid(%wbox.txt,0,%wbox.count)
}
elseif (%wbox.count == 1) {
.timer -m 1 $calc(%wbox.count * %wbox.interval) /editbox -f %wbox.fenetre $mid(%wbox.txt,0,%wbox.count)
}
else {
.timer -m 1 $calc(%wbox.count * %wbox.interval) /editbox %wbox.fenetre $mid(%wbox.txt,0,%wbox.count)
}
}
unset %wbox.*
}
alias term.comm {
aline @term'script 2Les commandes sont :
aline @term'script $crlf
aline @term'script 3open 7<hote> <port>
aline @term'script 3close
aline @term'script 3listen 7<port>
aline @term'script 3stoplisten
aline @term'script 3crlf
aline @term'script 3clear
aline @term'script 3quit
aline @term'script 3help
aline @term'script $crlf
aline @term'script 2Pour de l'aide sur une commande taper 3help 7<commande>,
aline @term'script 2en remplacent 7<commande>2 par la commande sur laquelle vous souaithez obtenir de l'aide.
}
alias term.help {
if ($1 == open) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 open 7 <hote> <port>1.
aline @term'script 2Description :1 Ouvre une connexion à l'hote 7 <hote> 1 sur le port 7<port>1.
aline @term'script $crlf
}
elseif ($1 == close) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 close1.
aline @term'script 2Description :1 Ferme la connexion précédemment ouverte avec 3open1.
aline @term'script $crlf
}
elseif ($1 == listen) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 listen 7<port>1.
aline @term'script 2Description :1 Se met en attente d'une connexion sur le port 7<port>1.
aline @term'script $crlf
}
elseif ($1 == stoplisten) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 stoplisten1.
aline @term'script 2Description :1 Arrète l'écoute de connexions entrantes1.
aline @term'script $crlf
}
elseif ($1 == crlf) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 crlf1.
aline @term'script 2Description :1 Envoie un retour chariot à la connexion active1.
aline @term'script $crlf
}
elseif ($1 == clear) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 clear1.
aline @term'script 2Description :1 Efface l'écran1.
aline @term'script $crlf
}
elseif ($1 == quit) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 quit1.
aline @term'script 2Description :1 Ferme toutes les connexions et ferme la fenêtre term'script 1.
aline @term'script $crlf
}
elseif ($1 == help) {
aline @term'script $crlf
aline @term'script 2Syntaxe : 3 help 7<commande>1.
aline @term'script 2Description :1 Affiche de l'aide sur la commande 7<commande>1.
aline @term'script $crlf
}
else {
aline @term'script $crlf
aline @term'script 2Commande inconnue : 3 $1 1.
aline @term'script $crlf
}
}
alias newrandom {
return $md5($time $+ $rand(a,z) $+ $rand(0,99) $+ $date $+ $rand(A,Z))
}
On *:SOCKLISTEN:term-s:{
if ($sock(term-c)) {
set %myrandom $newrandom
sockaccept %myrandom
aline @term'script 2Connexion entrante : 3Rejetée2, IP : 3 $sock(%myrandom).ip .
if ($sock(%myrandom)) {
sockwrite -n %myrandom Un client est deja connecté
}
sockclose %myrandom
unset %myrandom
}
else {
sockaccept term-c
set %term-c.ip $sock(term-c).ip
set %term-c.serveur $sock(term-c).ip
set %term-c.port $sock(term-c).port
aline @term'script 2Connexion entrante : 3Acceptée2, IP : 3 %term-c.ip 2.
}
}
On *:SOCKREAD:term-c:{
:nextread
sockread %term.buffer
if ($sockbr == 0) {
return
}
if (%term.buffer == $null) {
set %term.buffer [NULL]
}
aline @term'script 7<1 %term.buffer
goto nextread
}
On *:SOCKOPEN:term-c:{
if ($sockerr > 0) {
aline @term'script 4Erreur :2 Erreur de socket n°7 $sockerr 2.
}
else {
set %term-c.ip $sock(term-c).ip
aline @term'script 2Connecté à : 3 %term-c.serveur 2sur le port3 %term-c.port 2 (3 %term-c.ip 2) .
}
}
On *:SOCKWRITE:term-c:{
if ($sockerr > 0) {
aline @term'script 4Erreur :2 Erreur de socket n°7 $sockerr 2.
return
}
aline @term'script 7>1 %term.bufferlocal
}
On *:SOCKCLOSE:term-c:{
aline @term'script 2Déconnecté de : 3 %term-c.serveur 2sur le port3 %term-c.port 2 (3 %term-c.ip 2) .
}
On *:INPUT:@term'script:{
if ($1 == open) {
if ($sock(term-c)) {
aline @term'script 4Erreur :2 Il y a déja une connexion ouverte, tapez 3close2 pour la fermer1.
}
else {
if (!$2) {
aline @term'script 4Erreur :2 Vous n'avez pas spécifié l'hote, tapez 3help 7open2 pour avoir de l'aide sur la commande 3open 1.
return
}
if (!$3) {
aline @term'script 4Erreur :2 Vous n'avez pas spécifié le port, tapez 3help 7open2 pour avoir de l'aide sur la commande 3open 1.
return
}
if ($3 !isnum) {
aline @term'script 4Erreur :2 Le port ne peut que contenir des chiffres1.
return
}
set %term-c.serveur $2
set %term-c.port $3
aline @term'script 2Connexion à 3 %term-c.serveur 2 sur le port3 %term-c.port 1...
sockopen term-c $2 $3
}
}
elseif ($1 == close) {
if ($sock(term-c)) {
aline @term'script 2Déconnecté de : 3 %term-c.serveur 2sur le port3 %term-c.port 2 (3 %term-c.ip 2) .
sockclose term-c
}
else {
aline @term'script 4Erreur : 2 Aucune connexion n'est ouverte.
}
}
elseif ($1 == listen) {
if ($sock(term-c)) {
aline @term'script 4Erreur :2 Il y a déja une connexion ouverte, tapez 3close2 pour la fermer1.
return
}
if ($sock(term-s)) {
aline @term'script 4Erreur :2 Il y a déja une connexion écoutante ouverte, tapez 3stoplisten2 pour la fermer1.
return
}
if (!$2) {
aline @term'script 4Erreur :2 Vous n'avez pas spécifié le port à écouter, tapez 3help 7listen2 pour avoir de l'aide sur la commande 3listen 1.
return
}
if ($2 !isnum) {
aline @term'script 4Erreur :2 Le port ne peut que contenir des chiffres1.
return
}
if (!$portfree($2)) {
aline @term'script 4Erreur :2 Le port est utilisé par une autre application1.
return
}
socklisten term-s $2
set %term-s.port $2
aline @term'script 2En attente d'une connexion à3 $ip 2sur le port3 %term-s.port 2.
}
elseif ($1 == stoplisten) {
if (!$sock(term-s)) {
aline @term'script 4Erreur :2 Aucune connexion écoutante n'est ouverte1.
return
}
sockclose term-s
aline @term'script 2Fin d'écoute du port3 %term-s.port 2.
}
elseif ($1 == crlf) {
if (!$sock(term-c)) {
aline @term'script 4Erreur : 2 Aucune connexion n'est ouverte.
return
}
set %term.bufferlocal [CRLF]
sockwrite -n term-c $crlf
}
elseif ($1 == clear) {
clear @term'script
}
elseif ($1 == quit) {
aline @term'script 12Merci d'utiliser ce script, pour toute question ou commentaire => 3mickael9@gmail.com 12 .
sockclose term*
unset %term*
.timer 1 3 /window -c @term'script
}
elseif ($1 == help) {
if ($2) {
term.help $2
}
else {
term.comm
}
}
else {
if (!$sock(term-c)) {
aline @term'script 4Erreur : 2 Aucune connexion n'est ouverte.
return
}
set %term.bufferlocal $1-
sockwrite -n term-c %term.bufferlocal
}
}
Conclusion :
Fonctionnement :
taper /term pour ouvrir le terminal
pour la liste des commandes taper help dans la fenetre du terminal
j'ai mis une petite démo pour le fun : /term-demo ^^
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.