Hola a toda la comunidad elhacker.
Me pidieron ayuda para realizar una aplicación en la cual, cuando el usuario la ejecuta, se abre en segundo plano e informa el estado de un servidor (On/Off). parece simple, y deve serlo, pero hasta ahora nunca tuve que relacionar VB con internet y para mi es como algo "nuevo".
Les pido si alguno tiene algun link, o me puede tirar un código, para ver que tan complicado puede llegar a ser.
Muchas gracias
Es muy facil usa Winsock
Agrega a tu proyecto el control winsock
Private Sub Timer1_timer()
Dim Res as string
Res=EstadoServer(ip,puerto,NombreWinsockOSocketMaster)
msgbox iif(Res=0,"Desconectado (OFF)","Conectado (On)")
end sub
public Function EstadoServer(IPDNS as string, byval Puerto as integer,Socket as Winsock) as long
with Socket
if .state<>7 then
EstadoServer=0
.close
.remotehost=IPDNS
.remoteport=Puerto
.connect
else
EstadoServer=1
end if
end with
end function
Si tiene algun error corrigelo, ya que no cuento con el Visual Basic a la mano y errores de dedo estan presentes Ok
Dulces Lunas
Cita de: BlackZeroX en 12 Julio 2009, 10:32 AM
Es muy facil usa Winsock
Agrega a tu proyecto el control winsock
Private Sub Timer1_timer()
Dim Res as string
Res=EstadoServer(ip,puerto,NombreWinsockOSocketMaster)
msgbox iif(Res=0,"Desconectado (OFF)","Conectado (On)")
end sub
public Function EstadoServer(IPDNS as string, byval Puerto as integer,Socket as Winsock) as long
with Socket
if .state<>7 then
EstadoServer=0
.close
.remotehost=IPDNS
.remoteport=Puerto
.connect
else
EstadoServer=1
end if
end with
end function
Si tiene algun error corrigelo, ya que no cuento con el Visual Basic a la mano y errores de dedo estan presentes Ok
Dulces Lunas
Con solo leerlo y no saber nada de Winsock es entendible, gracias, pero no es lo que pedia :xD
Yo quería que el VB saque la info de una página.
Es para un servidor de Lineage 2 :silbar:
La idea del programa es que muestre esto:
Estado (ON/OFF)
Cantidad de players ON
(con saber sacar esos dos datos puedo sacar muchos más)
La idea sería que revise la página y saque determinada info.
Saludos
LineAge2 usa una DB si es asi no deberas usar dicha conexion almenos que el app no funcione desde otra PC, a lo que voy es que te informes del modo del sistema del juego, si usa MySQL SQLServer ORacle o algo similar, despues investiga la manera de la conexion por medio de VB6 y documentate sobre lo mismo. pero si no tienes acceso a la DB del server puedes hacer infinidad de split ya obteniendo el codigo fuente por medio del control WebBroser o obteniendolo por medio del winsock por medio del protocolo web que no recuerdo como era pero que en este foro algo algo de esto.¡!
estuve fijandome mas cosas por internet y consegui varios ejemplo, que a decir verdad no entiendo muy bien.
Sigo buscando un código simple para que escanee el puerto de un host remoto pero no consigo resultados buenos.
SI alguno tiene algun proyecto que sirva para eso, mil gracias.
El cñodigo que esta arriba no me deja escanear un puerto remoto.
Saludos
Me `parece que voy progresando:p
Private Sub Form_Load()
Winsock1.Protocol = sckTCPProtocol ' primero especifico el tipo de protocolo
Winsock1.RemoteHost = "xxx.xxx.x.xx" ' le especifico la IP del host
Winsock1.RemotePort = "xxxx" ' le especifico el puerto al que quiero conectarme
'Hasta ahi creo que voy bien, ahora quiero conectarme y verificar la conexión
'Entonces pongo .Connect
Winsock1.Connect
End Sub
Ahora, tengo que llamar a la propiedad State ? o hay alguna otra manera?
Gracias
Mmm hice un pequeño diminuto arreglo ya uq eya cuento con el vb6 a la mano... aca te lo dejo bien.¡!
Option Explicit
Private Sub Timer1_timer()
Dim Res As Long
Res = ControlWinsock.state
Caption = ControlWinsock.state
If Res = 7 Then
MsgBox "Conectado (On)"
ElseIf Res = 0 Then
Call Command1_Click 'Rectificamos nuevamente el estado....
Else
' este se activa si es diferente a 7 puede ser cualquier otro estado como por ejemplo puede estar conectado pero a la vez tranfiriendo o esperando etc aun en estosestados aparecera como desconectado aun que lo este asi que debe espesificarse mas casos donde este ON pero a la vez haciendo algo o seguirasaltando este como un estado algo falso
MsgBox "Desconectado (OFF) o En Otro Estado"
End If
End Sub
Private Sub Command1_Click()
With ControlWinsock
.Close
.RemoteHost = "mu.goldteam.lv"
.RemotePort = "44405"
.Connect
End With
End Sub
Rectifica que si LineAge2 usa una Base de datos, cual, si es asi puedes usar ADO, para dicha conexion, y en base a estor retomar toda la informacion,
ahora Winsock NO escanea, envia y recive datos, ahora deberias usar un poco google si quieres documentarte a fondo sobre dicho elemento.¡!
aquí te dejo unas referencias:
Esto es lo que pides practicamente...
Protocolo Web (solo los mas usados) + Winsock (http://foro.elhacker.net/programacion_vb/winsock_protocolos_mas_usados_version_1_http-t186798.0.html)
Aca te dejo otros como alternativa, para no depender de una web...:
Manual Winsock Cliente/Servidor + Tuto Troyano (http://www.programacion.net/tutorial/vbcliserv/)
Tema Relacionado ADO + VB6 (http://foro.elhacker.net/programacion_vb/vb6_y_mysql_en_la_web-t257744.0.html;msg1254079)
ConnectionStrings (http://www.connectionstrings.com/)
como crear un servidor LineAge 2 existen variados sistemas de BD [Asi que es lo primero que debes investigar] (http://www.google.com.mx/search?hl=en&rlz=1I7RNTN_es&q=crear+servidor+lineage+2)
en base a lo de Creacion del server Line Age2 Server debes de ver comotrabaja el servidor ya que si no no sabras como empezar si es que usas una conexion a la DB directamente (en este caso no importa si hay web o no solo que que el servidor este ON).¡!
Por cierto en este foro hay un codigo para obtener los cabesales d euna web, no recuerdo su nombre. ni quien lo hizo pero son dos personas...
Dulces Lunas