Ir al contenido principal

Recientemente, mientras se solucionaba un problema de conexión, surgió esta pregunta. El sistema OpenVOS se conectaba a un servidor público de Internet. El administrador del servidor hizo una simple pregunta "¿Cuál es su dirección IP?" El sistema OpenVOS tiene una dirección IP de uno de los rangos de internet privados definidos por el RFC 1918, llámelo 192.168.0.1. Esta dirección privada es traducida por un dispositivo NAT a una dirección pública cuando sale de la internet privada y entra en la internet. El administrador necesitaba saber la dirección pública. El administrador del sistema OpenVOS no tenía ni idea y hubo una lucha para encontrar un administrador de red que nos lo dijera.

Hay cualquier número de sitios web de Internet a los que se puede conectar que le dirán cuál es su dirección IP PERO todos ellos utilizan HTTP y OpenVOS no tiene un navegador web que pueda utilizarse para conectarse a esos sitios.

Para asegurarme de que no me pongan en la misma situación otra vez, escribí el siguiente comando macro usando stcp_calls. Puede ser usado para hacer una conexión a un sitio web y mostrar el texto de la página web raíz del sitio. La pantalla es un volcado hexadecimal de los datos devueltos, no es bonito pero es legible. También hay algunas otras limitaciones. Primero, no todos los sitios funcionarán. Muchos sitios requieren que el navegador siga un enlace en la página raíz para obtener la dirección IP, algo que el navegador hace automáticamente pero mi script no lo hará. Aún así, encontré algunos sitios que funcionan con el script, revisa los comentarios en el script. Te sugiero que ejecutes la macro en un proceso iniciado.

La segunda limitación se debe a cómo el dispositivo NAT traduce las direcciones IP. Algunos dispositivos cambiarán todo el tráfico saliente para que tenga la misma dirección de origen, otros dispositivos tendrán un conjunto de direcciones IP que utilizan para la dirección IP de origen, seleccionando una dirección específica basada en un algoritmo interno. Todo lo que puedo sugerir es ejecutar la macro varias veces y ver lo que obtienes. Todas las direcciones deberían estar en la misma subred, pero no puedo predecir cuál será esa subred.

y encontrar mi dirección IP comienza aquí
&
& Versión 1.00 10-12-06
& La versión 1.01 10-12-08 añadió otro sitio a la lista
& [email protected]
&
& Este guión se conecta a un sitio web y recupera la página raíz. Muchos sitios
y que muestran su dirección IP requieren que el navegador siga un enlace en el
y la página raíz para mostrar su dirección IP. Estos sitios no funcionarán con esta
y el guión. He probado los siguientes sitios y actualmente funcionan (aunque
y no hago promesas para el futuro).
&
& La salida se muestra en un formato hex-dump/ascii. No es fácil de leer pero
...y deberías ser capaz de detectar la dirección IP. Le sugiero que ejecute el
y el guión como un proceso iniciado y luego buscar la salida.
&
Y NOTAS DEL SERVIDOR
&       ------               -----
y findmyip.com busca por "es:"
y qué dirección de correo electrónico.com el último conjunto de bytes no nulos en la última memoria intermedia
& www.ip-adress.com busque "es:" y sí, es una d en la dirección
y checkip.dyndns.org el último conjunto de bytes no nulos en el último buffer
&     
Este software se proporciona "TAL CUAL", SIN NINGUNA GARANTÍA NI NINGÚN TIPO DE GARANTÍA.
Y APOYO DE CUALQUIER TIPO. El AUTOR ESPECIALMENTE RENUNCIA A CUALQUIER GARANTÍA IMPLÍCITA
...Y DE COMERCIABILIDAD O IDONEIDAD PARA CUALQUIER PROPÓSITO EN PARTICULAR.  Este descargo de responsabilidad
y se aplica, a pesar de cualquier representación verbal de cualquier tipo proporcionada por el
y el autor o cualquier otra persona.
&
&begin_parameters
SERVIDOR servidor:string,req
&end_parameters
&
&if (tipo_de_proceso) = 'lote' &entonces &do
&echo no_input_lines no_command_lines no_macro_lines
y terminar...
&
&attach_input
stcp_calls
enchufe
buf_edit
0 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 30 0a 0a

conectar -nombre &SERVER& -puerto 80
enviar -len 16
&label OTRA VEZ
..start_logging (directorio_de_procesos)>recv
recv -len 1000
..stop_logging
&set_string LINE (contents (process_dir)>recv 1)
...línea_de_despliegue & LÍNEA&
&if (index (contents (process_dir)>recv 1) ' 0 bytes') > 0 &entonces &goto QUIT
&if (index (contents (process_dir)>recv 1) 'bytes') = 0 &entonces &goto QUIT
buf_dump
&goto OTRA VEZ
&label DEJAR DE HACER
Deje
&
y encontrar mi dirección IP termina aquí.