Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo obtener la IP de la red externa en vb?

¿Cómo obtener la IP de la red externa en vb?

¿Obtener IP del nombre de dominio y nombre de dominio de IP en vb?

Const privada WS_VERSION_REQD = &H101?

Const privada WS_VERSION_MAJOR = WS_VERSION_REQD &H100 y &HFF&?< / p>

Const privada WS_VERSION_MINOR = WS_VERSION_REQD ¿Y &HFF&?

Const privada MIN_SOCKETS_REQD = 1?

Const privada SOCKET_ERROR = -1?

Const privada ¿WSADescription_Len = 256?

Const. privada WSASYS_Status_Len = 128?

¿Tipo privado HOSTENT?

¿nombre tan largo?

¿Aliases tan largos?

¿hAddrType como entero?

h¿Longitud como entero?

hAddrList como largo?

¿Tipo final?

¿Tipo privado WSADATA?

¿wversion como entero?

wHighVersion como entero?

szDescription(0 a WSADescription_Len) como byte?

szSystemStatus (0 a WSASYS_Status_Len) ¿Como byte?

¿iMaxSockets como entero?

iMaxUdpDg como entero?

lpszVendorInfo ¿Tan largo?

Tipo de fin

Función de declaración privada gethostbyaddr Lib "WSOCK32.DLL" (dirección como cualquiera, ByVal _?

byteslen como entero, tipo de dirección como entero) ¿Tanto tiempo?

Función de declaración privada WSAGetLastError Lib "WSOCK32.DLL" () ¿Tan larga?

Función de declaración privada WSAStartup Lib "WSOCK32.DLL" (ByVal _?

wVersionRequired&, lpWSAData como WSADATA) ¿Tanto tiempo?

Función de declaración privada WSACleanup Lib "WSOCK32.DLL" () ¿Tanto tiempo?

Función de declaración privada gethostbyname Lib "WSOCK32.DLL" (ByVal _?

hostname$) ¿Durante tanto tiempo?

Declaración privada Sub RtlMoveMemory Lib "KERNEL32" (hpvDest como cualquiera, _?

ByVal hpvS

¿fuente&, ByVal cbCopy&)?

Función hibyte(ByVal wParam As Integer) Nota: ¿Obtener el bit alto del número entero?

hibyte = wParam &H100 y &HFF&?

¿Función final?

Función lobyte(ByVal wParam As Integer) Nota: ¿Obtener el bit bajo del número entero?

lobyte = wParam y &HFF&?

¿Función final?

¿Función SocketsInitialize()?

¿Atenuar WSAD como WSADATA?

¿Atenuar iReturn como entero?

Atenuar slowByte como cadena , sHighByte como cadena, sMsg como cadena?

iReturn = WSAStartup(WS_VERSION_REQD, WSAD)?

Si iReturn <> 0 ¿entonces?

MsgBox "Winsock. dll no responde."?

¿Fin?

¿Fin si?

Si lobyte(WSAD.wversion) < WS_VERSION_MAJOR O (lobyte(WSAD.wversion) = WS_VERSION_MAJOR Y hibyte(WSAD. wversion) < WS_VERSION_MINOR) ¿Entonces?

sHighByte = Trim$(str$(hibyte(WSAD.wversion)))?

sLowByte = Trim$( str$(lobyte(WSAD. wversion)))?

sMsg = "Versión de Windows Sockets" & sLowByte & "." & sHighByte?

sMsg = sMsg & "No compatible con winsock.dll"?

p>

MsgBox sMsg?

¿Fin?

¿Fin si?

Si WSAD.iMaxSockets < MIN_SOCKETS_REQD Entonces ?

sMsg = "¿El número mínimo de enchufes requeridos por este sistema es"?

sMsg = sMsg & Trim$(str$(MIN_SOCKETS_REQD))?

MsgBox sMsg?

¿Fin?

¿Finalizar si?

¿Finalizar función?

¿Sub SocketsCleanup()?

¿Atenuar lReturn tanto tiempo?

lReturn = WSACleanup()?

Si lReturn <> 0 ¿entonces?

MsgBox "Error de socket" & Trim$( str$(lReturn)) & " ocurrió en la limpieza "?

¿Fin?

¿Fin si?

¿Fin Sub?

Sub Form_Load()?

Nota: inicial

¿Socket?

¿SocketsInitialize?

¿Fin Sub?

Sub formulario privado_Descargar (cancelar como entero)?

Comentarios: ¿Borrar socket

¿SocketsCleanup?

¿Fin Sub?

Función privada getip(nombre como cadena) ¿Como cadena?

¿Dim hostent_addr mientras sea largo?< / p>

¿Atenuar el host como HOSTENT?

¿Atenuar hostip_addr tanto tiempo?

¿Atenuar temp_ip_address() como byte?

¿Atenuar i como entero?

p>

¿Atenuar ip_address como cadena?

hostent_addr = gethostbyname(nombre)?

Si hostent_addr = 0 ¿entonces?

getip = "" Comentario: ¿No se puede interpretar el nombre de host?

¿Salir de la función?

¿Finalizar si?

¿Host RtlMoveMemory, hostent_addr, LenB(host)?

RtlMoveMemory hostip_addr, host.hAddrList, 4?

¿ReDim temp_ip_address(1 a host.hLength)?

RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength?

Para i = 1 Para host.hLongitud?

dirección_ip = dirección_ip & dirección_ip_temp(i) & "."?

¿Siguiente?

dirección_ip = Mid$ (dirección_ip, 1, Len(dirección_ip) - 1)?

getip = dirección_ip?

¿Finalizar función?

Subcomando privado1_click()?

¿Dim str como cadena?

str = getip(Text1.Text)?

Si str = "" ¿Entonces?

Texto2. "¿No se puede interpretar el nombre de host"?

¿Otro?

Text2.Text = str?

¿Finalizar si?

¿Finalizar sub?

Función privada getname(addrstr como cadena) ¿Como cadena?

¿Atenuar hostent_addr mientras sea largo?

¿Atenuar host como HOSTENT?

Atenuar ¿addr(0 a 50) como byte?

¿Atenuar direcciones como cadena?

¿Atenuar hname(1 a 50) como byte?

¿Atenuar str como cadena?

¿Atenuar i como entero, j como entero?

Atenuar temp_int como entero

er?

¿Dim byt como byte?

str = Trim$(addrstr)?

i = 0?

j = 0 ?

¿Hacer?

temp_int = 0?

i = i + 1?

Hacer mientras Mid$(str, i, 1) >= "0" Y Mid$(str, i, 1) <= "9" And i <= Len(str)?

temp_int = temp_int * 10 + Mid$(str, i , 1)?

i = i + 1?

¿Bucle?

Si temp_int <= 255 ¿Entonces?

addr(j ) = temp_int?

j = j + 1?

¿Finalizar si?

Bucle hasta la mitad$(str, i, 1) <> "." ¿O i > Len(str) o temp_int > 255?

Si temp_int > 255 ¿entonces?

¿getname = "Dirección ilegal"?

¿Salir de la función?

¿Finalizar si?

hostent_addr = gethostbyaddr(addr(0), j, 2)?

Si hostent_addr = 0 ¿Entonces?

getname = "¿Esta dirección no se puede resolver"?

¿Salir de la función?

¿Finalizar si?

¿RtlMoveMemory host, hostent_addr, LenB(host)?

RtlMoveMemory hname(1), host.hname, 50?

j = 51?

¿Para i = 1 a 50?

Si hname (i) = 0 ¿Entonces?

j = i?

¿Finalizar si?

Si i >= j ¿Entonces?

hname (i) = 32?

¿Finalizar si?

¿Siguiente i?

getname = Trim$(StrConv(hname, vbUnicode))?

¿Finalizar función?

¿Subcomando privado2_Click()?

¿Atenuar nombre como cadena?

¿nombre = getname(Text2.Text)?

Si nombre = "" ¿Entonces?

nombre = "Esta dirección no tiene un nombre de dominio"?

¿Finalizar si?

Texto1. ¿Texto = nombre?

Fin del subtítulo