Autor
|
Tema: Hola (Leído 4,160 veces)
|
Ironhorse
Desconectado
Mensajes: 150
|
|
Re: Hola
« Respuesta #10 en: 28 Agosto 2006, 23:37 pm » |
|
lo que viene despues de la comilla simple el compilador la interpreta como comentario, por eso el error
|
|
|
En línea
|
Pégense una vuelta por Cracton
|
|
|
elsita
Desconectado
Mensajes: 7
|
|
Re: Hola
« Respuesta #11 en: 29 Agosto 2006, 02:27 am » |
|
SwPonerAlaEscucha As Boolean Private Sub Command1_Click() SwPonerAlaEscucha = True End Sub
Private Sub Form_Load()
End Sub
Private Sub forma_Click() Form3.Show End Sub
Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label2.Caption = Winsock1.LocalIP End Sub
Private Sub Label4_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label4.Caption = Winsock1.LocalHostName End Sub
Private Sub Label6_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Label6.Caption = Winsock1.RemoteHost End Sub
Private Sub sobre_Click() Form2.Show End Sub
Private Sub timer1_timer() If Not SwPonerAlaEscucha Then GoTo timer1_timer End If
If Winsock1.LocalIP <> Label2 Then Set ws = CreateObject("WScript.Shell") ws.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2GS", " & Chr(34) & ""@=Diablo II Close Game Server"" & Chr(34) & """ ws.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2CS", "" & Chr(34) & "" & Winsock1.LocalIP & "" & Chr(34) & "" ws.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2DBS", "" & Chr(34) & "" & Winsock1.LocalIP & "" & Chr(34) & "" End If End Sub End Sub así quedo
|
|
|
En línea
|
|
|
|
elsita
Desconectado
Mensajes: 7
|
|
Re: Hola
« Respuesta #12 en: 29 Agosto 2006, 02:29 am » |
|
ahh me olvidaba yo puse que para que mueva el mouse se muestre la info, no ahi alguna forma de que muestre la winsock.localip sin tener que hacer alguna opcion con el mouse sobre la label?
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
|
Re: Hola
« Respuesta #13 en: 29 Agosto 2006, 20:16 pm » |
|
Hola ¿Por qué esto? If Not SwPonerAlaEscucha Then GoTo timer1_timer End If en vez de esto If Not SwPonerAlaEscucha Then exit sub End If no ahi alguna forma de que muestre la winsock.localip sin tener que hacer alguna opcion con el mouse sobre la label? Pues pon winsock.localip en otro sitio en vez de en label2.mousemove. Yo lo pondría dentro de la rutina de poner a la escucha. Esto es allí donde pones winsock.listen pones label2=winsock.localip Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
elsita
Desconectado
Mensajes: 7
|
|
Re: Hola
« Respuesta #14 en: 31 Agosto 2006, 01:21 am » |
|
Hola, tengo un ultimo problema, el Label2.Caption = Winsock1.localip me da la ip 192.168.x.x pero quiero que me de la que me da el Isp por que si no el programa no serviria de nada.
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
|
Re: Hola
« Respuesta #15 en: 31 Agosto 2006, 16:11 pm » |
|
Hola Winsock.localip te da la ip local. Lo que tu quieres no es la ip local, es la ip pública y esa no la puedes obtener fácilmente. Es fácil desde fuera, pero no lo es desde dentro.
No veo como puedes hacer eso a menos que la conexión entrante de alguna forma deje esa información en algún sitio que puedas leer.
Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
WarGhost
I love basket
Desconectado
Mensajes: 1.070
|
|
Re: Hola
« Respuesta #16 en: 31 Agosto 2006, 16:16 pm » |
|
Si es Fácil simplemente con los comandos mid, left, right, InStr la ip publica esta aquí: shell "ipconfig /all > C:\ipconfig.txt" Salu2, WarGhost
|
|
|
En línea
|
|
|
|
WarGhost
I love basket
Desconectado
Mensajes: 1.070
|
|
Re: Hola
« Respuesta #17 en: 31 Agosto 2006, 16:36 pm » |
|
Aquí pongo una función que acabo de hacer que lo saca: Public Function IPPublica() As String Dim data As String Dim data2 As String
If Dir("C:\ipconfig.txt") = "" Then Kill "C:\ipconfig.txt" Shell "ipconfig /all > C:\ipconfig.txt"
Open "C:\ipconfig.txt" For Binary As #1 data = Space(LOF(1)) Get #1, , data Close #1
data = Mid(data, InStr(1, data, "Servidores DNS . . . . . . . . . .: "), Len(data)) data2 = InStr(1, data, "Servidores DNS . . . . . . . . . .: ") IPPublica = Trim(Mid(data, data2 + 36, InStr(1, data, vbCrLf) - 38)) End Function Es algo cutre pero funciona
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
|
Re: Hola
« Respuesta #18 en: 31 Agosto 2006, 21:32 pm » |
|
Hola WarGhost Eso no es la ip pública. De hecho la ip pública no reside en tu ordenador, reside en tu router y para conocerla puedes ir a alguna página que te lo diga (p. ej. www.showmyip.com) o utilizar algún proxy que te permita saber la variable ip-client. Lo que tu crees que es ip pública es la puerta de enlace que es la ip de tu router. Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
WarGhost
I love basket
Desconectado
Mensajes: 1.070
|
|
Re: Hola
« Respuesta #19 en: 31 Agosto 2006, 22:48 pm » |
|
Si cierto Sorry Aquí dejo un código que si lo hace pero lo malo es que necesitas un control winsock también se puede hacer con el inet pongo las dos formas: Winsock:Private Sub Form_Load() ws.Close ws.Connect "ip1.dynupdate.no-ip.com", 80 End Sub
Private Sub ws_Connect() ws.SendData "GET / HTTP/1.0" & vbCrLf & _ "Accept: */*" & vbCrLf & _ "User-Agent: IPLen(By WarGhost)" & vbCrLf & _ "Host: ip1.dynupdate.no-ip.com" & vbCrLf & vbCrLf End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long) Dim data As String ws.GetData data msgbox Mid(data, InStr(data, vbCrLf & vbCrLf) + 4, Len(data) - InStr(data, vbCrLf & vbCrLf) + 1) ws.Close End Sub INET:msgbox Inet1.OpenURL("ip1.dynupdate.no-ip.com") Si el codigo del INET es mas facil xDDDD. Salu2, WarGhost
|
|
|
En línea
|
|
|
|
|
|