Skip to main content

Cette question s'est posée récemment lors du dépannage d'un problème de connexion. Le système OpenVOS se connectait à un serveur public en face de l'Internet. L'administrateur du serveur a posé une question simple : "Quelle est votre adresse IP ? Le système OpenVOS a une adresse IP provenant d'une des plages Internet privées définies par la RFC 1918, appelée 192.168.0.1. Cette adresse privée est traduite par un dispositif NAT en une adresse publique lorsqu'elle quitte l'internet privé et se rend sur l'internet. L'administrateur avait besoin de connaître l'adresse publique. L'administrateur système d'OpenVOS n'en avait aucune idée et il a fallu faire des pieds et des mains pour trouver un administrateur réseau qui puisse nous le dire.

Il existe un certain nombre de sites Internet auxquels vous pouvez vous connecter et qui vous indiqueront votre adresse IP, mais ils utilisent tous le protocole HTTP et OpenVOS ne dispose pas de navigateur web permettant de se connecter à ces sites.

Pour m'assurer de ne pas me retrouver dans la même situation, j'ai écrit la macro de commande suivante en utilisant stcp_calls. Elle peut être utilisée pour établir une connexion à un site web et afficher le texte de la page web racine du site. L'affichage est un dump hex-ascii des données retournées, ce n'est pas joli mais c'est lisible. Il y a aussi d'autres limitations. Tout d'abord, tous les sites ne fonctionneront pas. De nombreux sites exigent que le navigateur suive un lien sur la page racine pour obtenir l'adresse IP, ce que le navigateur fait automatiquement mais que mon script ne peut pas faire. J'ai tout de même trouvé quelques sites qui fonctionnent avec le script, vérifiez les commentaires dans le script. Je vous suggère d'exécuter la macro dans un processus lancé.

La deuxième limitation est due à la manière dont le dispositif NAT traduit les adresses IP. Certains dispositifs modifient tout le trafic sortant de manière à ce qu'il ait la même adresse source, d'autres disposent d'un ensemble d'adresses IP qu'ils utilisent pour l'adresse IP source, en sélectionnant une adresse spécifique basée sur un algorithme interne. Tout ce que je peux vous suggérer, c'est d'exécuter la macro plusieurs fois et de voir ce que vous obtenez. Toutes les adresses devraient se trouver sur le même sous-réseau, mais je ne peux pas prédire ce que sera ce sous-réseau.

& find_my_ip_address commence ici
&
& Version 1.00 10-12-06
& Version 1.01 Le 10-12-08 a ajouté un autre site à la liste
& [email protected]
&
& Ce script se connecte à un site web et récupère la page racine. De nombreux sites
& qui affichent votre adresse IP nécessitent que le navigateur suive un lien sur le
et la page racine pour afficher votre adresse IP. Ces sites ne fonctionneront pas avec cette
et le script. J'ai testé les sites suivants et ils fonctionnent actuellement (bien que
& Je ne fais aucune promesse pour l'avenir).
&
& La sortie est affichée dans un format hexadécimal/ascii. Pas facile à lire mais
& vous devriez être en mesure de repérer l'adresse IP. Je vous suggère d'exécuter le
& script comme un processus lancé et ensuite rechercher la sortie.
&
& NOTES SUR LE SERVEUR
&       ------               -----
& findmyip.com recherchez "is :".
& whatismyipaddress.com dernier ensemble d'octets non nuls dans la dernière mémoire tampon
& www.ip-adress.com recherchez "is :" et oui, il est un d dans l'adresse
& checkip.dyndns.org dernier ensemble d'octets non nuls dans le dernier tampon
&     
& Ce logiciel est fourni "tel quel", SANS AUCUNE GARANTIE
& SOUTIEN DE TOUTE SORTE. L'AUTEUR DECLINE SPECIFIQUEMENT TOUTES LES GARANTIES IMPLICITES
& DE QUALITÉ MARCHANDE OU D'ADÉQUATION À UN USAGE PARTICULIER.  Cette clause de non-responsabilité
& s'applique, malgré toute représentation verbale de quelque nature que ce soit fournie par le
& auteur ou toute autre personne.
&
&begin_parameters
Serveur SERVER:string,req
&end_parameters
&
&if (process_type) = "batch" &then &do
&echo no_input_lines no_command_lines no_macro_lines
&end
&
&attach_input
stcp_calls
socket
buf_edit
0 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 30 0a 0a

connect -name &SERVER& -port 80
envoyer -len 16
&label AGAIN
..start_logging (process_dir)>recv
recv -len 1000
..stop_logging
&set_string LINE (contenu (process_dir)>recv 1)
...display_line &LINE&
&if (index (contenu (process_dir)>recv 1) ' 0 octets') > 0 &then &goto QUIT
&if (index (contenu (process_dir)>recv 1) 'octets') = 0 &then &goto QUIT
buf_dump
&goto AGAIN
&label QUIT
quitter
&
& find_my_ip_address se termine ici

 

2024 Stratus Technologies.