mirc scripting

Xray

Hola a todos,

necesitaria un manual para poder ver si un servidor esta conectado o no.

poniendo por ejemplo !status que ponga Server is ON u OFF.

No tengo ni idea de este lenguaje asi que si alguien me dice por que funcion empezar a buscar se lo agradeceria

un saludo

RedHat

busca en el google "MANUAL MIRCSCRIPTING SARRIO" espero q te sirva

A

Lo que quieres hacer para el servidor, no es dificil. Basta con que mires el evento ON TEXT, para el comando que quieres hacer y leas también la ayuda con respecto a los sockets. Abres un socket al puerto de tu servidor y si devuelve información, está activo.

ejemplo:

on :text:!status:#:{
if ($2) {
set %statusdest $chan
sockopen status $2- 80
}
}

on *:sockopen:status:{
if ($sockerr) {
.msg %statusdest El servidor no está activo.
unset %statusdest
sockclose status
}
else { .msg %statusdest El servidor está activo.
unset %statusdest | sockclose status }
}

Uso:

!status www.google.es

Devuelve: El servidor está activo.
Cambia el puerto por el de tu servidor o añade un $3 para especificar tú el puerto en el comando.

Xray

Muchas gracias y despues de mirarme alguna k otra guia no consigo que un bot que me e encontrao por ahi responda a lo que tu me has puesto xDD bueno si alguien le apetece explicarmelo mas a fondo se lo agradeceria, Gracias

A

No necesitas descargar ningún bot de otra parte. Mete ese código en remotes pulsaldo alt + r o guardándolo en un fichero y desde mirc: load -rs fichero.

Para que lo entiendas mejor:

; Cuando cualquiera (*) ponga !status en un canal
on :text:!status:#:{

; Si especifica un segundo parámetro ($2)
if ($2) {

; El destino de nuestro mensaje será ese canal
set %statusdest $chan

; Abrimos una conexión que llamamos "status" al host
; del parámetro por el puerto 80. (cambia el host
; por la ip de tu servidor y 80 por el puerto si quieres)

sockopen status $2- 80
}
}

; Cuando se abra una conexión que se llame status
; (la que especificamos arriba)

on *:sockopen:status:{

; Si hay error en la conexión, significa que el host
; no responde. Lo decimos y cerramos la conexión.

if ($sockerr) {
.msg %statusdest El servidor no está activo.
unset %statusdest
sockclose status
}

; Si no hay error, el host está vivo y responde, no
; necesitamos saber más.

else { .msg %statusdest El servidor está activo.
unset %statusdest | sockclose status }
}

Espero te sirva de ayuda.

Xray

muchas gracias por ayudarme neng xD te lo agradezco, pero sigo sin saber porque no me funciona, he cargado el archivo desde remotes y con load -rs .... y nada. e dejao el script segun estaba al principio para probar poniendo !status www.google.es y no sale absolutamente nada.

respecto a este punto una duda
; Abrimos una conexión que llamamos "status" al host
; del parámetro por el puerto 80. (cambia el host
; por la ip de tu servidor y 80 por el puerto si quieres)

sockopen status $2- 80

la ip del server es 70.85.221.130 y el puerto 7777 entonces lo e cambiado asi

sockopen status $2- 70.85.221.130:7777

me imagino que estara mal pero e probado varias formas distintas y no hay respuesta.

un saludoy gracias de nuevo

A

Si hacemos el código específico para tu servidor la cosa quedaría así:

on *:text:!status:#:{
set %statusdest $chan
sockopen status 70.85.221.130 7777
}

on *:sockopen:status:{
if ($sockerr) {
.msg %statusdest El servidor no está activo.
unset %statusdest
sockclose status
}
else { .msg %statusdest El servidor está activo.
unset %statusdest | sockclose status }
}

Fíjate que simplemente he cambiado google por la ip de tu servidor y 80 (puerto web) por el puerto 7777.

A

Una nota: Para ver que funciona debe poner !status otra persona, si lo pones tú mismo obviamente no saldrá respuesta.

Xray

Vale ya funciona, muchisimas gracias por tu ayuda!!!

Usuarios habituales

  • Xray
  • Archville
  • RedHat