Manejar datos desde internet con VB 6.0

Iniciado por pungados, 12 Julio 2009, 09:47 AM

0 Miembros y 2 Visitantes están viendo este tema.

pungados

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


BlackZeroX

#1
Es muy facil usa Winsock

Agrega a tu proyecto el control winsock

Código (vb) [Seleccionar]

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
The Dark Shadow is my passion.

pungados

Cita de: BlackZeroX en 12 Julio 2009, 10:32 AM
Es muy facil usa Winsock

Agrega a tu proyecto el control winsock

Código (vb) [Seleccionar]

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

BlackZeroX

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.¡!
The Dark Shadow is my passion.

pungados

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

pungados

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

BlackZeroX

#6
Mmm hice un pequeño diminuto arreglo ya uq eya cuento con el vb6 a la mano... aca te lo dejo bien.¡!

Código (vb) [Seleccionar]

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

Aca te dejo otros como alternativa, para no depender de una web...:

Manual Winsock Cliente/Servidor + Tuto Troyano
Tema Relacionado ADO + VB6
ConnectionStrings
como crear un servidor LineAge 2 existen variados sistemas de BD [Asi que es lo primero que debes investigar]


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
The Dark Shadow is my passion.