Script pour tester qu'une station a changé de réseau
1 réponse
Stephane Guillou
Bonjour,
Je souhaiterais cr=E9er un script qui permettrait =E0 une station qui a
chang=E9 de r=E9seau de mettre =E0 jour automatiquement sa configuration.
Ce script s'ex=E9cuterait au startup et se baserait sur un test qui
validerait que la configuration actuelle n'est plus adapt=E9e au r=E9seau
sur lequel la station vient d'=EAtre rebranch=E9e. Suivant le r=E9sultat,
le script mettrait alors =E0 jour ou non automatiquement les fichiers de
configuration r=E9seau.
Est-ce que aurait une id=E9e et pourrait m'orienter vers une commande
qui me permettrait de faire ce test?=20
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Lefevre
Dans l'article , Stephane Guillou écrit:
Est-ce que aurait une idée et pourrait m'orienter vers une commande qui me permettrait de faire ce test?
J'utilise le script suivant sur mon portable (pour mettre à jour mon fichier ~/.ssh/config). L'idée est de faire une requête sur <http://checkip.dyndns.org/>. À adapter suivant tes besoins...
#!/usr/bin/env perl
# This script should be executed every hour by root on ay.
use strict; use POSIX; use LWP::Simple; use Regexp::Common qw /net/;
my ($proc) = '$Id: home_net 11154 2006-02-15 21:54:50Z lefevre $' =~ /^.Id: (S+) / or die;
my $file = '/etc/netenv/home_net'; my $url = 'http://checkip.dyndns.org/'; my $checkip = get($url);
# We assume that a failure to get the document is not an error. # For instance, this can happen when the machine is not connected. # In such a case, we do not do anything, and exit silently. defined $checkip or exit;
$checkip =~ m!<body>Current IP Address: ($RE{net}{IPv4})</body>! or die "$proc: bad format of $urln"; print "$1n";
if ($1 eq '62.212.121.106') { -f $file and exit; open FILE, '>', $file or die "$!n$proc: can't create $filen"; close FILE; } else { -f $file or exit; unlink $file or die "$!n$proc: can't unlink $filen"; }
# Network settings have changed, reconfigure ssh on ay. (POSIX::uname)[1] eq 'ay.vinc17.org' and exec $< ? 'ssh-reconfigure' : 'su lefevre -c ssh-reconfigure';
Dans l'article <1156269500.429915.48350@p79g2000cwp.googlegroups.com>,
Stephane Guillou <Iboha31@numericable.fr> écrit:
Est-ce que aurait une idée et pourrait m'orienter vers une commande
qui me permettrait de faire ce test?
J'utilise le script suivant sur mon portable (pour mettre à jour
mon fichier ~/.ssh/config). L'idée est de faire une requête sur
<http://checkip.dyndns.org/>. À adapter suivant tes besoins...
#!/usr/bin/env perl
# This script should be executed every hour by root on ay.
use strict;
use POSIX;
use LWP::Simple;
use Regexp::Common qw /net/;
my ($proc) = '$Id: home_net 11154 2006-02-15 21:54:50Z lefevre $'
=~ /^.Id: (S+) / or die;
my $file = '/etc/netenv/home_net';
my $url = 'http://checkip.dyndns.org/';
my $checkip = get($url);
# We assume that a failure to get the document is not an error.
# For instance, this can happen when the machine is not connected.
# In such a case, we do not do anything, and exit silently.
defined $checkip or exit;
$checkip =~ m!<body>Current IP Address: ($RE{net}{IPv4})</body>!
or die "$proc: bad format of $urln";
print "$1n";
if ($1 eq '62.212.121.106')
{
-f $file and exit;
open FILE, '>', $file or die "$!n$proc: can't create $filen";
close FILE;
}
else
{
-f $file or exit;
unlink $file or die "$!n$proc: can't unlink $filen";
}
# Network settings have changed, reconfigure ssh on ay.
(POSIX::uname)[1] eq 'ay.vinc17.org' and exec $< ?
'ssh-reconfigure' : 'su lefevre -c ssh-reconfigure';
Est-ce que aurait une idée et pourrait m'orienter vers une commande qui me permettrait de faire ce test?
J'utilise le script suivant sur mon portable (pour mettre à jour mon fichier ~/.ssh/config). L'idée est de faire une requête sur <http://checkip.dyndns.org/>. À adapter suivant tes besoins...
#!/usr/bin/env perl
# This script should be executed every hour by root on ay.
use strict; use POSIX; use LWP::Simple; use Regexp::Common qw /net/;
my ($proc) = '$Id: home_net 11154 2006-02-15 21:54:50Z lefevre $' =~ /^.Id: (S+) / or die;
my $file = '/etc/netenv/home_net'; my $url = 'http://checkip.dyndns.org/'; my $checkip = get($url);
# We assume that a failure to get the document is not an error. # For instance, this can happen when the machine is not connected. # In such a case, we do not do anything, and exit silently. defined $checkip or exit;
$checkip =~ m!<body>Current IP Address: ($RE{net}{IPv4})</body>! or die "$proc: bad format of $urln"; print "$1n";
if ($1 eq '62.212.121.106') { -f $file and exit; open FILE, '>', $file or die "$!n$proc: can't create $filen"; close FILE; } else { -f $file or exit; unlink $file or die "$!n$proc: can't unlink $filen"; }
# Network settings have changed, reconfigure ssh on ay. (POSIX::uname)[1] eq 'ay.vinc17.org' and exec $< ? 'ssh-reconfigure' : 'su lefevre -c ssh-reconfigure';