Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion:
[Actualités]
Nvidia prévient d'une pénurie de GPU ce trimestre, avec une reprise début 2025
[Actualités]
Les Technos #469 : Un jour sans fin
[Actualités]
Test Farming Simulator 25 (PS5) - Des innovations intéressantes mais des perfor...
[Actualités]
Qualcomm souhaite réduire davantage les prix des PC Windows basés sur ARM
[Actualités]
Finalement, Google préparerait une nouvelle tablette mais la Pixel Tablet 2 ser...
[Actualités]
Windows 10 version 22H2 : erreur de mise à jour et de désinstallation
[Actualités]
OpenAI prépare désormais son propre navigateur
[Actualités]
WhatsApp bat Telegram : les transcriptions des messages vocaux arrivent pour tou...
[Actualités]
Unreal et Unreal Tournament désormais gratuits sur Internet Archive
[Actualités]
Windows 10 : Microsoft affiche des publicités en plein écran pour les PC équi...
[Articles]
Dungeons 4 - Nintendo Switch Edition
[Articles]
The Bridge Curse 2 : The Extrication
[Articles]
Farmagia
[Articles]
I*CHU: Chibi Edition
[Articles]
Farming Simulator 25
[Articles]
Goblin Slayer -Another Adventurer- Nightmare Feast
[Articles]
Deel lance des programmes en marque blanche et pour les revendeurs pour plus de ...
[Articles]
ESET Research : WolfsBane, nouvelle porte dérobée de cyber-espionnage Linux cr...
[Articles]
Devoteam présente son nouveau plan stratégique « AMPLIFY » avec un fort acce...
[Articles]
LEGO Horizon Adventures
Actualités
Lettre d'information
Proposer une actualité
Archives
Actualités
Articles
Programmation
Press Release
Matériel
Logiciels
Livres
Interviews
Derniers commentaires
Jeux Vidéos
XBox One
XBox 360
Wii U
PSP
PS4
PS3
PC
DS
GameCube
3DS
Forum
Derniers messages
Informatique
Fun
Divers
Logithèque
Blogs
Divers
A Propos
Annonceurs
Contact
Recherche
RSS
Editer un article
Titre
Mots Clés
Texte
[size=18] [b]Nom[/b] [/size] chat - Script de conversation automatisée avec un modem [size=18] [b]Résumé[/b] [/size] [b]chat[/b] [ [i]options[/i] ] [i]script[/i] [size=18] [b]Description[/b] [/size] Le programme [i]chat[/i] régit une « conversation » entre l'ordinateur et le modem. Son but premier est d'établir la connexion entre [i]pppd[/i], le démon du Protocole Point à Point, et le processus [i]pppd[/i] distant. [size=18] [b]Options[/b] [/size] [b]-f [i]
[/b] [table][row][col] [/col][col]Utilise le script chat du [i]fichier[/i] chat. L'utilisation de cette option et celle des paramètres de chat sont mutuellement exclusives. L'utilisateur doit avoir le droit de lecture sur le fichier. Le fichier peut comporter plusieurs lignes ; les blancs et les caractères de tabulation sont utilisables pour séparer les chaînes.[/col][/row][/table] [b]-t [i]
[/b][/i] [table][row][col] [/col][col]Fixe le temps limite (en secondes) d'attente d'une chaîne. Si la chaîne n'est pas reçue dans ce temps, la chaîne-réponse n'est pas envoyée. Une chaîne alternative peut être envoyée. S'il n'y en a pas, le script s'arrêtera sur une erreur. Dans ce cas, le programme [i]chat[/i] se terminera avec une valeur de retour non nulle.[/col][/row][/table] [b]-r [i]
[/b] [table][row][col] [/col][col]Détermine le fichier devant contenir les chaînes de rapport (voir ci-dessous). Si vous précisez le mot-clef [i]REPORT[/i] dans le script, les chaînes suivant celui-ci seront écrites dans ce fichier. Si cette option n'est pas utilisée, mais que vous mentionnez quand même [i]REPORT[/i] dans le script, la sortie standard ([i]stderr[/i]) sera utilisée pour le rapport des chaînes transmises. [/col][/row][/table] [b]-e[/b] [table][row][col] [/col][col]Démarre avec l'option echo activée. Cette option peut aussi être activée ou désactivée en des points spécifiques du script chat, en utilisant le mot-clef [i]ECHO[/i]. Quand echo est activée, toutes les sorties du modem sont envoyées vers [i]stderr[/i].[/col][/row][/table] [b]-E[/b] [table][row][col] [/col][col]Active la substitution des variables d'environnement à l'intérieur des scripts chat, grâce à la syntaxe standard [i]$xxx[/i].[/col][/row][/table] [b]-v[/b] [table][row][col] [/col][col]Demande que le script [i]chat[/i] soit exécuté en mode bavard. Le programme [i]chat[/i] enregistrera alors l'état d'exécution du script, en plus des chaînes reçues et envoyées au modem. La méthode par défaut d'enregistrement est d'utiliser le SYSLOG ; elle peut être modifiée par les drapeaux -S et -s.[/col][/row][/table] [b]-V[/b] [table][row][col] [/col][col]Demande que le script [i]chat[/i] soit exécuté en mode bavard sur stderr. Le programme [i]chat[/i] affichera alors sur la sortie standard toutes les chaînes reçues et envoyées au modem. La sortie standard est généralement la console locale de l'ordinateur exécutant le programme chat ou pppd.[/col][/row][/table] [b]-s[/b] [table][row][col] [/col][col]Utilise la sortie standard (stderr). Tous les messages d'enregistrement générés par '-v' et tous les messages d'erreur seront envoyés vers stderr.[/col][/row][/table] [b]-S[/b] [table][row][col] [/col][col]N'utilise pas le SYSLOG. Par défaut, les messages d'erreur sont envoyés vers SYSLOG. L'utilisation de -S empêchera les messages générés par '-v' et les messages d'erreur d'être envoyés vers le SYSLOG.[/col][/row][/table] [b]-T [i]
[/b] [table][row][col] [/col][col]Passe une chaîne arbitraire, habituellement un numéro de téléphone, qui sera substitué au métacaractère de substitution T dans une chaîne d'envoi.[/col][/row][/table] [b]-U [i]<2e[/i] No tél.>[/b] [table][row][col] [/col][col]Passe une deuxième chaîne, habituellement un numéro de téléphone, qui sera substitué au métacaractère de substitution U dans une chaîne d'envoi. C'est utile pour appeler un modem ISDN, qui a besoin de deux numéros.[/col][/row][/table] [b]script[/b] [table][row][col] [/col][col]Si le script n'est pas lu dans un fichier avec l'option [i]-f[/i], il doit être inclus sous forme de paramètres du programme [i]chat[/i].[/col][/row][/table] [size=18] [b]Script chat[/b] [/size] Le script [i]chat[/i] régit les communications. Un script consiste en une ou plusieurs paires de chaînes attendue/envoyée ("expect-send"), séparées par des espaces, avec une paire optionnelle "sous-attendue/sous-envoyée" ("subexpect-subsend"), séparées par un tiret, comme dans l'exemple suivant : [table][row][col] [/col][col]ogin:-BREAK-ogin: ppp ssword: hello2u2[/col][/row][/table] Cette ligne indique au programme [i]chat[/i] d'attendre la chaîne "ogin:". S'il ne reçoit pas d'invite de login dans l'intervalle de temps alloué, il doit envoyer une séquence d'interruption (BREAK) à son correspondant, puis attendre à nouveau la chaîne "ogin:". Si le premier "ogin:" est reçu, la séquence d'interruption n'est pas envoyée. Dès qu'il aura reçu l'invite de login, le programme [i]chat[/i] enverra la chaîne "ppp", puis attendra l'invite "ssword:". À sa réception, il enverra le mot de passe "hello2u2". Un retour chariot suit normalement chaque chaîne envoyée. En revanche, aucun retour chariot n'est prévu dans une chaîne attendue, à moins qu'il ne soit spécifiquement exigé en utilisant la séquence de caractères " ". La chaîne attendue ne devrait contenir que le strict nécessaire pour identifier la chaîne. Comme elle est normalement stockée dans un fichier sur le disque, elle ne devrait pas contenir d'information variable, comme des heures, des durées, des identifications de réseau. Pour être moins sensible aux caractères qui pourraient être corrompus pendant la séquence initiale, attendez la chaîne "ogin:" plutôt que "login:". Il est possible que le "l" de tête soit mal reçu, et dans ce cas vous ne [i]chat[/i] ne trouvera jamais la chaîne attendue. Pour la même raison, les scripts attendent "ssword:" plutôt que "password:". Un script très simple pourrait ressembler à ceci : [table][row][col] [/col][col]ogin: ppp ssword: hello2u2[/col][/row][/table] En clair, attend ....ogin:, envoie ppp, attend ...ssword:, envoie hello2u2. Dans la pratique, les scripts simples sont rares. Au minimum, vous devriez inclure des séquences "sous-attendues" au cas où la chaîne d'origine ne soit pas reçue. Par exemple, examinez le script suivant : [table][row][col] [/col][col]ogin:--ogin: ppp ssword: hello2u2[/col][/row][/table] C'est un script un peu meilleur que celui, simpliste, utilisé précédemment. Il attend la même invite "login:", mais si elle n'est pas reçue, il envoie un simple retour chariot, puis se remet en attente de "login:". Si du bruit sur la ligne interfère avec la première invite, l'envoi d'une ligne vide génère habituellement une nouvelle invite. [size=18] [b]Commentaires[/b] [/size] Des commentaires peuvent être inclus dans un script chat. Un commentaire est une ligne commençant par un caractère [b]#[/b] (dièse) en première colonne. Ces lignes sont simplement ignorées par le programme chat. Si un caractère '#' est le premier caractère d'une chaîne attendue, cette chaîne doit être placée entre guillemets : [table][row][col] [/col][col]# Attend maintenant l'invite puis envoie la chaîne "logout" (déconnexion) [b][/b] '# ' logout[/col][/row][/table] [size=18] [b]Envoyer des donnÉes depuis un fichier[/b] [/size] Si la chaîne à envoyer commence par une arobase (@), le reste de la chaîne est considéré comme le nom d'un fichier à lire pour obtenir la chaîne à envoyer. Si le dernier caractère des données lues est un saut de ligne, il est supprimé. Le fichier peut être un fifo au lieu d'un fichier régulier. Cela fournit à [b]chat[/b] un moyen de communiquer avec un autre programme, par exemple un programme qui affiche une invite et reçoit un mot de passe entré par l'utilisateur. [size=18] [b]ChaÎnes dabandon (abort)[/b] [/size] La plupart des modems signalent l'état de la communication sous forme d'une chaîne. Ces chaînes peuvent être [b]CONNECTED[/b] (connecté), [b]NO[/b] CARRIER (pas de porteuse), ou [b]BUSY[/b] (occupé). Il est souvent préférable de terminer le script si le modem échoue à se connecter à son correspondant. La difficulté est qu'un script ne peut pas savoir exactement quelle chaîne il risque de recevoir du modem. Lors d'une tentative, il peut recevoir [b]BUSY[/b], alors qu'à la suivante, il recevra [b]NO[/b] CARRIER. Ces chaînes "d'abandon" ("abort") peuvent être spécifiées dans le script avec le mot-clef [i]ABORT[/i], comme dans l'exemple suivant : [table][row][col] [/col][col]ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT[/col][/row][/table] Cette séquence n'attend rien, et envoie la chaîne ATZ (initialisation modem). La réponse attendue est la chaîne [i]OK[/i]. À sa réception, il envoie la chaîne ATDT5551212 pour composer le numéro. La chaîne attendue est alors [i]CONNECT[/i]. Dès qu'elle est reçue, le reste du script est exécuté. Mais si le modem tombe sur une ligne occupée, il enverra la chaîne [i]BUSY[/i], qui correspondra à une des chaînes d'abandon. De même si le programme reçoit [i]NO[/i] CARRIER. Les deux chaînes seront reconnues, et termineront toutes deux le script. [size=18] [b]RÉinitialisation des chaÎnes dabandon (clr_abort)[/b] [/size] Cette séquence permet d'effacer les chaînes [b]ABORT[/b] précédemment spécifiées. Les chaînes [b]ABORT[/b] sont gardées dans un tableau de taille prédéterminée (à la compilation) ; [b]CLR_ABORT[/b] récupère l'espace des entrées effacées, qui peut alors être utilisé par les nouvelles chaînes. [size=18] [b]ChaÎnes say[/b] [/size] La directive [b]SAY[/b] permet au script d'envoyer des chaînes à l'utilisateur, à travers la sortie d'erreur standard du terminal. Si [b]chat[/b] est lancé par pppd, et que pppd tourne comme démon (détaché de son terminal de contrôle), l'erreur standard sera normalement redirigée vers le fichier /etc/ppp/connect-errors. Les chaînes [b]SAY[/b] doivent être entre apostrophes simples ou doubles. Si un retour chariot ou un saut de ligne est nécessaire en sortie, vous devez l'ajouter explicitement à la chaîne. Les chaînes SAY peuvent être utilisées pour afficher des messages de progression dans des sections du script en 'ECHO OFF', mais pendant lesquelles vous voulez tout de même tenir l'utilisateur au courant de ce qui se passe. Voici un exemple : [table][row][col] [/col][col]ABORT BUSY [b][/b] ECHO OFF [b][/b] SAY "J'appelle votre FAI... " [b][/b] '' ATDT5551212 [b][/b] TIMEOUT 120 [b][/b] SAY "J'attends la connexion jusqu'à 2 minutes... " [b][/b] CONNECT '' [b][/b] SAY "Connecté, maintenant je me logue...n" [b][/b] ogin: account [b][/b] ssword: pass [b][/b] $ c SAY "OK, logué...n" [i]etc[/i] ...[/col][/row][/table] Cette séquence ne présentera à l'utilisateur que les chaînes SAY, et lui épargnera tous les détails. Par exemple, si le script ci-dessus fonctionne, l'utilisateur verra : [table][row][col] [/col][col]J'appelle votre FAI... [b][/b] J'attends la connexion jusqu'à 2 minutes... Connecté, maintenant je me loggue... [b][/b] OK, loggué...[/col][/row][/table] [size=18] [b]ChaÎnes de rapport[/b] [/size] Une chaîne de rapport ([b]report[/b]) est similaire à une chaîne ABORT. La différence est que les chaînes, ainsi que tous les caractères jusqu'au prochain caractère de contrôle (comme le retour chariot), sont écrites dans le fichier de rapport. Les chaînes de rapport peuvent être utilisées pour extraire le débit de la chaîne de connexion envoyée par le modem, et envoyer la valeur à l'utilisateur de chat. L'analyse des chaînes de rapport se pratique idéalement couplée avec le traitement des autres chaînes, comme l'attente d'une chaîne "expect". L'utilisation d'une même chaîne dans deux séquences REPORT et ABORT n'est probablement pas très utile, mais elle est toutefois possible. Ces chaînes de rapport peuvent être spécifiées dans le script par le mot-clef [i]REPORT[/i], comme dans l'exemple suivant : [table][row][col] [/col][col]REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin: account[/col][/row][/table] Cette séquence n'attend rien, et envoie la chaîne ATDT5551212 pour composer le numéro. La chaîne attendue est [i]CONNECT[/i]. Si elle est reçue, le reste du script est exécuté. En outre, le programme écrira dans le fichier de rapport la chaîne "CONNECT", plus tous les caractères qui la suivent, comme le débit en bauds. [size=18] [b]RÉinitialisation des chaÎnes de rapport (clr_report)[/b] [/size] Cette séquence permet d'effacer les chaînes [b]REPORT[/b] précédemment spécifiées. Les chaînes [b]REPORT[/b] sont gardées dans un tableau de taille prédéterminée (à la compilation) ; [b]CLR_REPORT[/b] récupère l'espace des entrées effacées, qui peut alors être utilisé par les nouvelles chaînes. [size=18] [b]Echo[/b] [/size] L'option echo contrôle si la sortie du modem doit être dupliquée vers [i]stderr[/i]. Cette option peut être activée avec l'option [i]-e[/i] sur la ligne de commande, mais peut aussi être contrôlée par le mot-clef [i]ECHO[/i] dans le script. La paire "attendue/envoyée" [i]ECHO[/i] [i]ON[/i] active l'option, et [i]ECHO[/i] [i]OFF[/i] la désactive. Grâce à ce mot-clef, vous pouvez sélectionner quelles parties de la conversation doivent être visibles. Par exemple, avec le script suivant : [table][row][col] [/col][col]ABORT 'BUSY' [b][/b] ABORT 'NO CARRIER' [b][/b] '' ATZ [b][/b] OK ATD1234567 [b][/b] c [b][/b] ECHO ON [b][/b] CONNECT c [b][/b] ogin: account[/col][/row][/table] Toutes les sorties résultant de la configuration du modem et de la numérotation restent invisibles, alors que tout est visible à partir du message [i]CONNECT[/i] (ou [i]BUSY[/i]). [size=18] [b]Hangup[/b] [/size] L'option HANGUP contrôle si un raccrochage du modem doit être considéré comme une erreur ou pas. Cette option est utile dans les scripts pour les systèmes de rappel, qui raccrochent et rappellent votre système. Les options de HANGUP peuvent être [b]ON[/b] ou [b]OFF[/b]. [b][/b] Si HANGUP est réglé à OFF et que le modem raccroche (par exemple, à la fin de la première étape de connexion à un système de rappel), [b]chat[/b] continuera d'exécuter le script (par exemple, par l'attente d'un appel entrant et d'une invite de login en début de seconde étape). Dès que l'appel entrant est pris, vous pouvez utiliser la directive [b]HANGUP[/b] ON pour réinstaurer le comportement normal au signal de raccrochage. Voici un script (simple) d'exemple : [table][row][col] [/col][col]ABORT 'BUSY' [b][/b] '' ATZ [b][/b] OK ATD1234567 [b][/b] c [b][/b] CONNECT c [b][/b] 'Callback login:' call_back_ID [b][/b] HANGUP OFF [b][/b] ABORT "Bad Login" [b][/b] 'Callback Password:' Call_back_password [b][/b] TIMEOUT 120 [b][/b] CONNECT c [b][/b] HANGUP ON [b][/b] ABORT "NO CARRIER" [b][/b] ogin:--BREAK--ogin: real_account [b][/b] [i]etc[/i] ...[/col][/row][/table] [size=18] [b]DÉlai dexpiration (timeout)[/b] [/size] Le délai d'expiration (timeout) initial est de 45 secondes. Il peut être changé par le paramètre [b]-t[/b] de la ligne de commande. Pour changer la valeur du délai pour la prochaine chaîne attendue, inspirez-vous de l'exemple suivant : [table][row][col] [/col][col]ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2[/col][/row][/table] Cela fixe le délai d'expiration à 10 secondes pendant l'attente de l'invite "login:". Puis ce délai est ramené à 5 secondes pendant l'attente de l'invite de mot de passe. Une fois modifié, le nouveau délai reste en vigueur jusqu'à ce qu'il soit à nouveau changé. [size=18] [b]Envoyer un eot[/b] [/size] La chaîne d'envoi spéciale [i]EOT[/i] indique que le programme chat doit envoyer un caractère EOT (End Of Transmission, fin de transmission) à son correspondant. Normalement, c'est la séquence de caractères End-of-file (fin de fichier). Aucun caractère de retour n'est envoyé après l'EOT. .PR La séquence EOT peut être incluse dans une chaîne d'envoi en utilisant la séquence [i]^D[/i]. [size=18] [b]GÉnÉrer une interruption (break)[/b] [/size] La chaîne d'envoi spéciale [i]BREAK[/i] envoie une interruption. Il s'agit d'un signal spécial généré par le modem (NdT : courte interruption de la porteuse). Des interruptions peuvent être utilisées pour changer cycliquement de débit de transmission, parmi ceux disponibles sur le correspondant, jusqu'à ce que vous receviez une invite valide. .PR La séquence d'interruption peut être incluse dans une chaîne d'envoi en utilisant la séquence [i][/i]K. [size=18] [b]SÉquences dÉchappement[/b] [/size] Les chaînes attendues et envoyées peuvent contenir des séquences d'échappement. Elles sont toutes autorisées dans les chaînes de réponse (envoyées), la plupart le sont dans les chaînes attendues. Celles qui ne le sont pas sont signalées. [b]''[/b] [table][row][col] [/col][col]Attend ou envoie une chaîne vide. Si vous envoyez une chaîne vide, chat enverra aussi le caractère retour chariot. Cette séquence peut être entourée d'apostrophes simples ou doubles.[/col][/row][/table] [b]\b[/b] [table][row][col] [/col][col]représente un backspace.[/col][/row][/table] [b]\c[/b] [table][row][col] [/col][col]Supprime le caractère retour chariot à la fin de la chaîne envoyée. C'est la seule méthode pour envoyer une chaîne sans retour chariot final. Il doit être placé à la fin de la chaîne d'envoi. Par exemple, la séquence "helloc" enverra simplement les caractères h, e, l, l, o. [i](Non valide dans une chaîne attendue.)[/i][/col][/row][/table] [b]\d[/b] [table][row][col] [/col][col]Délai d'une seconde. Le programme utilise sleep(1), qui attendra une seconde. [i](Non valide dans une chaîne attendue.)[/i][/col][/row][/table] [b]\K[/b] [table][row][col] [/col][col]Insère une interruption (BREAK). [i](Non valide dans une chaîne attendue.)[/i][/col][/row][/table] [b]\n[/b] [table][row][col] [/col][col]Envoie un saut de ligne.[/col][/row][/table] [b]\N[/b]
Fichier
Forum
-
Derniers messages
Bavardages
Aujourd'hui, je rénove ou je construis ^^
Software
problème sur windows 10
Réseaux et Télécom
Administrateur Réseau - Cisco
Réseaux et Télécom
Problème wifi (POE)
Software
Postfix - Need help
Bavardages
Oh râge oh désespoir !
Programmation
Enregistrement client et envoi mail
Software
SÉCURITÉ MACBOOK
Hardware
conseil matos réseau?
Hardware
nVidia Shield Android TV
Actualités
-
Archives
Matériel
Nvidia prévient d'une pénurie de GPU ce trimestre, avec une reprise début 2025
Les Technos
Les Technos #469 : Un jour sans fin
Jeux Vidéos
Test Farming Simulator 25 (PS5) - Des innovations intéressantes mais des performances à revoir
Matériel
Qualcomm souhaite réduire davantage les prix des PC Windows basés sur ARM
Tablettes
Finalement, Google préparerait une nouvelle tablette mais la Pixel Tablet 2 serait abandonnée
Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be
- © 2002-2024
Akretio
SPRL - Generated via
Kelare
The Akretio Network:
Akretio
-
Freedelity
-
KelCommerce
-
Votre publicité sur informaticien.be ?