¿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 /p>
¿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