Win3x.Org
http://www.win3x.org/win3board/

Emulateur de modem AT
http://www.win3x.org/win3board/viewtopic.php?f=68&t=26746
Page 1 sur 1
Auteur :  Ankeraout [ 24 mai 2020 18:48 ]
Sujet du message :  Emulateur de modem AT

Bonjour à tous,

Je vous présente un petit projet qui ne sert à rien d'émulateur de modem AT sur TCP.
L'idée c'est de simuler un modem qui serait branché sur le port série de l'ordinateur (du coup dans notre cas ça s'utilise sur une VM).

Pour l'utiliser c'est assez simple, faites un git clone du dépôt suivant : https://github.com/Ankeraout/at-modem-emulator, puis lancez la commande "make". Bien sûr, tout cela sous Linux, avec un compilateur et la librairie pthread installée ;)

Vous pouvez ensuite le lancer en tapant bin/modem (en mode super utilisateur, sinon vous aurez une erreur comme quoi le programme n'a pas réussi à créer l'interface réseau sous Linux).
Vous constaterez qu'une nouvelle interface réseau "tun0" est créée sur votre ordinateur, et elle possède l'adresse IP 192.168.50.1/24.

Si vous voulez utiliser ce programme uniquement pour faire un réseau local entre machines virtuelles, vous pouvez vous arrêter là.
Sinon, si vous souhaitez que vos machines virtuelles accèdent à Internet, il faut lancer deux commandes supplémentaires :
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o <votre interface wifi/ethernet ici> -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
La première ligne changera l'adresse IP source des paquets envoyés par votre machine virtuelle en mettant à la place l'adresse IP de votre interface physique, et redirigera au passage le paquet vers cette dernière. Cela permettra de router les paquets entrants.
La deuxième ligne active le forwarding IPv4 sur Linux. Sans ça, votre noyau ne fera pas passer les paquets d'une interface à une autre.

Ensuite, rendez vous dans votre logiciel de virtualisation, et redirigez un des ports série de la machine virtuelle vers le socket TCP de votre machine exécutant le logiciel.

Par exemple avec VirtualBox:
[ img ]

Vous pouvez ensuite démarrer votre machine virtuelle. Le programme devrait détecter une connexion et allouer une adresse IP à votre machine virtuelle :
client_init(): allocated IP address 192.168.50.2 for a new client from 192.168.144.200.
Après ça, vous n'avez plus qu'à créer une connexion réseau dans le système d'exploitation virtualisé, et il s'occupera de la communication avec le modem ;)
(Si l'OS vous le demande, précisez que vous utilisez le protocole de communication PPP)

Je tiens à préciser que j'ai codé et testé ce programme uniquement avec Windows 98 SE et Windows ME.
Il se peut que d'autres OS envoient des commandes non implémentées au modem.
Si c'est le cas, signalez-le dans le topic en précisant l'OS utilisé, j'essaierai de voir ce qui cloche.

J'ai aussi remarqué que sous Windows 98, il y a un certain temps d'attente de l'ordre de 1mn où il ne se passe rien entre le moment où Windows envoie la commande de numérotation et l'ouverture de la connexion. Je n'ai pas ce problème sous Windows ME.

Page 1 sur 1 Fuseau horaire sur UTC+01:00
Développé par phpBB® Forum Software © phpBB Limited
Traduction française officielle © Qiaeru