Passa al contenuto principale

Recentemente, durante la risoluzione di un problema di connessione, si è posta questa domanda. Il sistema OpenVOS si stava connettendo ad un server pubblico che si affacciava su Internet. L'amministratore del server ha posto una semplice domanda: "Qual è il suo indirizzo IP? Il sistema OpenVOS ha un indirizzo IP di una delle gamme Internet private definite dalla RFC 1918, chiamatelo 192.168.0.1. Questo indirizzo privato viene tradotto da un dispositivo NAT in un indirizzo pubblico quando esce da Internet privato e va su Internet. L'amministratore doveva conoscere l'indirizzo pubblico. L'amministratore di sistema OpenVOS non ne aveva idea e c'è stato uno scramble per trovare un amministratore di rete che potesse dircelo.

Ci sono un numero qualsiasi di siti Internet a cui ci si può connettere per sapere qual è il proprio indirizzo IP, ma tutti usano HTTP e OpenVOS non ha un browser web che possa essere usato per connettersi a quei siti.

Per essere sicuro di non trovarmi di nuovo nella stessa situazione ho scritto la seguente macro di comando usando stcp_calls. Può essere utilizzata per effettuare una connessione a un sito web e visualizzare il testo della pagina web principale del sito. La visualizzazione è un hex-ascii dump dei dati restituiti, non è bello ma è leggibile. Ci sono anche altre limitazioni. Innanzitutto, non tutti i siti funzionano. Molti siti richiedono che il browser segua un link sulla pagina principale per ottenere effettivamente l'indirizzo IP, cosa che il browser fa automaticamente, ma il mio script non lo farà. Ho comunque trovato alcuni siti che funzionano con lo script, controlla i commenti nello script. Suggerisco di eseguire la macro in un processo avviato.

La seconda limitazione è dovuta al modo in cui il dispositivo NAT traduce gli indirizzi IP. Alcuni dispositivi modificheranno tutto il traffico in uscita in modo che abbia lo stesso indirizzo di origine, altri dispositivi avranno un insieme di indirizzi IP che utilizzano per l'indirizzo IP di origine, selezionando un indirizzo specifico sulla base di un algoritmo interno. Tutto quello che posso suggerire è di eseguire la macro più volte e vedere cosa si ottiene. Tutti gli indirizzi dovrebbero essere sulla stessa sottorete, ma non posso prevedere quale sarà la sottorete.

e trova il mio indirizzo IP inizia qui
&
& Versione 1.00 10-12-06
e la versione 1.01 10-12-08 ha aggiunto un altro sito alla lista
& [email protected]
&
& Questo script si collega a un sito web e recupera la pagina principale. Molti siti
e che visualizzano il vostro indirizzo IP richiedono che il browser segua un link sul
e la pagina principale per visualizzare il vostro indirizzo IP. Questi siti non funzioneranno con questo
e script. Ho testato i seguenti siti e attualmente funzionano (anche se
e non faccio promesse per il futuro).
&
e l'uscita viene visualizzata in formato hex-dump/ascii. Non è facile da leggere ma
e dovreste essere in grado di individuare l'indirizzo IP. Vi suggerisco di eseguire il
e script come processo avviato e poi cercare l'output.
&
E NOTE DI SERVIZIO
&       ------               -----
e findmyip.com cerca "è:".
& whatismyipaddress.com ultimo set di byte non-null nell'ultimo buffer
& www.ip-adress.com cerca "è:" e sì, è una d in indirizzo
& checkip.dyndns.org ultimo set di byte non-null nell'ultimo buffer
&     
& Questo software è fornito "così com'è", SENZA ALCUNA GARANZIA O QUALSIASI GARANZIA
E SUPPORTO DI QUALSIASI TIPO. L'AUTORE DISCLAUDE SPECIFICAMENTE QUALSIASI GARANZIA IMPLICITA
E DI COMMERCIABILITÀ O IDONEITÀ PER QUALSIASI SCOPO PARTICOLARE.  Questo disclaimer
e si applica, nonostante le rappresentazioni verbali di qualsiasi tipo fornite dal
e autore o chiunque altro.
&
¶metri_inizio_parametri
SERVER server:string,req
eparametri_fine_parametri
&
&if (tipo_processo) = 'batch' &then &do
&echo no_linee_di_ingresso no_linee_di_comando no_macro_linee
&end
&
&attach_input
stcp_chiamate
presa
buf_edit
0 47 45 45 54 20 2F 20 48 54 54 54 50 2F 31 2E 30 0a 0a 0a

connect -name &SERVER& -port 80
inviare -len 16
&etichetta DI NUOVO
..start_logging (processo_dir)>recv
recv -len 1000
..stop_logging
&set_string LINE (contenuto (process_dir)>recv 1)
..display_line &LINE&
&if (indice (indice (contenuto (process_dir)>recv 1) ' 0 byte') > 0 &then &goto QUIT
&if (indice (indice (contenuto (process_dir)>recv 1) 'byte') = 0 &allora &goto QUIT
buf_dump
andar via di nuovo
&label QUIT
chiudere
&
e trova il mio indirizzo IP finisce qui

 

© 2024 Stratus Technologies.