Red de conocimiento informático - Problemas con los teléfonos móviles - Utilice vb para editar el nombre de dominio de ping

Utilice vb para editar el nombre de dominio de ping

Módulo módulo BAS

Devuelve el siguiente código al módulo módulo BAS:

Opción explícita

Constante privada IP_SUCCESS As Long = 0

Constante privada IP_STATUS_BASE Mientras = 11000

Constante privada IP_BUF_TOO_SMALL Mientras =(11000 1)

Constante privada IP_DEST_NETWORK_No disponible Longitud alcanzable = (11000 2)

Privada constante IP_DEST_HOST_UNREACHABLE Longitud = (11000 3)

Constante privada IP_DEST_PROT_UNREACHABLE Longitud = (11000 4)

Constante privada IP_DEST_Port_Unreachable Longitud = (11000 5)

Constante privada IP_NO_RESOURCES Mientras = (11000 6)

IP constante privada _ BAD _ OPCIÓN Mientras = (11000 7)

IP constante privada _ HW _ ERROR Mientras = (11000 8)

IP constante privada _ PAQUETE _ DEMASIADO _ GRANDE Mientras =(11000 9)

IP constante privada _ REQ _ TIEMPO _ OUT Mientras =(11000 10)

IP constante privada _ BAD _ REQ Mientras =(11000 11)

IP constante privada _ BAD _ ROUTE Mientras =(11000 12)

IP constante privada _ TTL _ EXPIRADO _ TRÁNSITO Mientras =(11000 13)

IP Const Privada _ TTL _ EXPIRADO _ re Assam Mientras =(11000 14)

IP Const Privada _ PARAM _ PROBLEMA Mientras Largo =(11000 15)

IP constante privada _ FUENTE _ QUENCH Mientras =(11000 16)

IP constante privada _ OPCIÓN _ DEMASIADO _ GRANDE Mientras =(11000 17)

IP constante privada _ MAL _ DESTINO Mientras Largo = (11000 18)

IP constante privada _ DIRECCIÓN _ Eliminar Largo = (11000 19)

IP constante privada _ SPEC _ MTU _ CAMBIAR Mientras =( 11000 20)

IP Const Privada _ MTU _ CAMBIAR Mientras =(11000 21)

IP Const Privada _ DESCARGAR Mientras =( 11000 22)

Const privada IP_ADDR_Add mientras = (11000 23)

Const privada IP_GENERAL_FAILURE mientras =(11000 50)

Const privada MAX_IP_STATUS mientras = (11000 50)

IP privada constante _ PENDIENTE

As Long = (11000 255)

Constante privada PING_TIMEOUT As Long = 500

Constante privada WS _ VERSION _ REQD As Long = ampH101

Constante privada MIN_SOCKETS_REQD As Long = 1

Const privada SOCKET_ERROR As Long = -1

Const privada INADDR_NONE solamente = ampHFFFFFFFF

Const privada MAX _ wsa descripción As Long = 256

Constante privada MAX _ WSASYSStatus As Long = 128

Tipo privado ICMP_OPTIONS

Ttl como bytes

Tos como bytes

Las banderas son bytes

El tamaño de la opción es bytes

Longitud de los datos de la opción

Tipo final

Tipo público ICMP_ECHO_REPLY

p>

La dirección tiene la misma longitud

El estado es largo

El tiempo de ida y vuelta es el mismo

El tamaño de los datos es Largo Nota: exlinteger

Nota: Reservado como un número entero

La misma longitud que el puntero de datos

Como opción para ICMP_OPTIONS

Datos en forma de cadena * 250

Tipo final

Tipo privado WSADATA

wVersion en formato entero

wHighVersion en formato entero

szDescription (0 a MAX_WSADescription) expresado en bytes

szSystemStatus (0 a MAX_WSASYSStatus) se expresa en bytes

wMaxSockets tiene la misma longitud

wMaxUDPDG tiene la misma longitud

dwVendorInfo As Long

Tipo de finalización

Función de declaración privada IcmpCreateFile Lib "icmp.dll "() es Long

Función de declaración privada IcmpCloseHandle Lib " icmp . dll "(el identificador ByVal ICM es largo)

Función de declaración privada IcmpSendEcho Lib " ICMP . dll " (el identificador ByVal ICM es largo, ByVal DestinationAddress es largo, ByVal RequestData es una cadena, ByVal RequestSize es Long, ByVal RequestOptions es Long, ReplyBuffer es ICMP_ECHO_REPLY, ByVal ReplySize es Long, ByVal Timeout es Long)

Función de declaración privada WSAGetLastError Lib "WSOCK32. DLL "() siempre y cuando

Función de declaración privada WSAStartup Lib "WSOCK32. DLL "(ByVal wVersionRequired As Long, lpWSADATA As WSADATA) as long

Función de declaración privada WSACleanup Lib "WSOCK32.

DLL "() tiene la misma longitud

Función de declaración privada gethostname Lib "WSOCK32. DLL" (ByVal szHost as String, ByVal dwHostLen as Long) as Long

Función de declaración privada gethostbyname Lib "WSOCK32. DLL" (ByVal szHost As String) siempre

Declaración privada del banco de memoria de subcopia "kernel32" alias "RtlMoveMemory" (xDest As Any, xSource As Any, ByVal nbytes As Long)

Función de declaración privada inet_addr Lib "WSOCK32.

DLL" (ByVal s As String)

Función pública GetStatusCode (longitud del estado) en forma de cadena

Mostrar mensaje como cadena

Seleccionar estado de caso

Caso IP_SUCCESS: msg = "ip exitosa"

Caso INADDR_NONE: msg = "inet_addr: Formato de IP incorrecto"

caso IP_BUF_TOO _ SMALL: msg = " IP BUF TOO _ PEQUEÑO "

Caso IP _ DEST _ Red _ Inalcanzable: msg = "red de destino ip inalcanzable"

IP de caso _ DEST _ Host_unreachable: msg = "host de destino ip inalcanzable"

Caso IP dest prot inalcanzable: msg = "ip dest prot inalcanzable"

Caso IP_DEST_PORT _Unreachable: msg = "ip destino puerto inalcanzable"

Caso IP _ NO _ RECURSOS: msg= "IP SIN RECURSOS"

Caso IP_BAD_OPTION: msg= "ip mala opción "

Caso IP_HARDWARE_ERROR: msg= "IP HARDWARE_ERROR"

Caso IP_PACKET_TOO_BIG: msg = "PAQUETE IP DEMASIADO GRANDE"

p>

Caso IP_REQ_TIMED_OUT: msg = "ip req timeout"

Caso IP_BAD_REQ: msg = "ip bad req"

Caso IP_BAD_ROUTE: msg = "ip ruta incorrecta"

Caso IP_TTL_EXPIRED_TRANSIT:msg="IP TTL TRANSIT EXPIRADO"

Caso IP_TTL_EXPIRED_resemb:msg="IP TTL EXPIRADO resemb "

Caso IP_PARAM_PROBLEM:msg="IP PARAM_PROBLEM"

Caso IP_SOURCE_QUENCH:msg="IP SOURCE QUENCH"

CasoIP_ OPTION_TOO_BIG:msg="OPCIÓN IP DEMASIADO_BIG "

Caso IP_BAD_DESTINATION:msg="IP MAL DESTINO"

CasoIP_ADDR_DELETED :msg = "dirección IP eliminada"

Caso IP_SPEC_MTU_CHANGE:msg = "IP SPEC MTU CHANGE"

Caso IP_MTU_CHANGE:msg = " IP MTU_CHANGE "

Caso IP_UNLOAD: msg = "ip unload "

Caso IP_ADDR_Added: msg = "dirección IP agregada "

Caso IP_GENERAL_FAILURE:msg="IP GEN

RAL FAILURE "

Caso IP_PENDING: msg= "ip pendiente "

Caso PING_TIMEOUT: msg= "ping timeout"

Otros casos: msg= "Return Unknown Mensaje "

Finalizar selección

GetStatusCode = CStr(status)"["amp;MSGamp"]"

Finalizar función

El La función pública Ping (dirección como cadena,

sDataToSend como cadena,

ECHO como ICMP_ECHO_REPLY) tiene la misma longitud

Nota: si Ping tiene éxito:

Nota: tiempo de ida y vuelta (milisegundos),

Nota: los datos de la dirección son los datos devueltos (terminados en nulo)

Nota:

.

Nota: tamaño de datos es el tamaño de la cadena en .data

Nota: p>

Nota: si el ping falla, el estado será código de error

Dim. hPort As Long

Dim dwAddress

Nota: convierta la dirección en una presentación larga

dwAddress = inet_addr(address)

Nota: Si es una dirección válida...

Si dwAddress lt gt entonces no hay ninguna

Nota: abra un puerto

hPort = IcmpCreateFile()

Nota: si tiene éxito,

si hPort entonces

Nota: haga ping.

Llame a IcmpSendEcho(hPort, dwAddress, sdatosend, Len(sdatosend), 0, Echo, Len(ECHO), PING_TIMEOUT)

Nota: cambiar el estado Devuelve como ping exitoso y cerrado

Ping = ECHO.status

Llamar a IcmpCloseHandle (hPort)

Si... terminará

En caso contrario:

Nota: El formato de la dirección puede no ser válido

Ping = INADDR_NONE

Terminará si...

Finalizar función

Public Sub SocketsCleanup()

si WSACleanup() <> entonces 0

MsgBox "Se produjo un error de Windows Sockets durante la limpieza. ", signo de exclamación VB

Terminará si...

Finalizar conector

La función pública SocketsInitialize() es un valor booleano

Dim· WSAD

socket inicializar = wsa startup(WS_VERSION_REQD,WSAD) = IP_SUCCESS

Finalizar función

Nota: - Finalizar bloque - Nota: p>

-

Código de formulario

Devuelve el siguiente código al formulario.

Opción explícita

Subcomando privado 1_Click()

Como eco difuso de ICMP_ECHO_REPLY

Posición de longitud variable

La atenuación tarda tanto como el éxito

Si SocketsInitialize() entonces

Nota: hacer ping a IP mediante dirección, texto

Nota: estructuras de envío y eco

Éxito = Ping((Text1.Text),(Text2.Text),Echo)

Nota: Mostrar resultados

Texto4(0). Texto = GetStatusCode(Éxito)

Texto 4(1). texto = eco. Dirección

Texto 4(2). texto = eco. Amplificador de tiempo de ida y vuelta"Sra."

Texto 4(3). texto = eco. tamaño de datos amp "bytes"

Si deja $(ECHO.Data, 1) lt; gtChr$(0) entonces

pos = InStr(ECHO.Data, Chr$( 0) ))

Texto 4(4). Texto = Left$(ECHO. data, posición 1)

Terminará si...

Texto 4(5). texto = eco. Puntero de datos

SocketsCleanup

Otro

MsgBox El entorno "amp" de Windows Sockets para Windows no respondió correctamente. "

Terminará si...

Conector final

Hay muchos códigos de este tipo en Internet. Puedes usar Baidu para echar un buen vistazo. y luego podrás obtener lo que deseas. La respuesta que necesitas

En primer lugar, debes establecer un estándar: cuánto tiempo se considera rápido y cuánto tiempo se considera lento.

(El verde es rápido, el rojo es lento y escribirás el tiempo más tarde).

Luego juzga el tiempo de regreso y compáralo con tu estándar para obtener el tiempo con respecto al estándar de velocidad

La precisión, especialmente la velocidad de un sitio, es difícil. ¡Puedes conocer objetivamente la velocidad de un sitio determinado!