Aller au contenu

[Resolu]Récupérer des renseigement sur les réseau


Dush

Messages recommandés

Bonjour,

Je cherche à faire un petit script permettant de connecter mon ordi portable au bon réseau. Ce script se lancerai au démarrage ou sur demande pour changer le portable de réseau (filière <=> wifi, chez_moi <=> wifi_d'amis, ...)

Je cherhe donc le moyen de savoir si un cable réseau filère est branché sur la carte réseau (sans avoir à configurer la carte et faire de ping...). => Pour savoir si il y a beasoin d'activer le wifi.

Est-ce que c'est possible de lister les ordinateurs/routeurs connectés à un réseau (les ip)? => pour savoir "où" on se trouve et lancer en fonction soit le client DHCP, soit configurer le réseau et lancer le clien NFS, ...

voilà... je pense que j'ai fais le tour. Je précise que je suis sous gentoo.

Merci de me faire parvenir vos remarques :)

Lien vers le commentaire
Partager sur d’autres sites

Pour la configuration en fonction du réseau sur lequel on est, sous gentoo, il y a arping qui est directement intégré à baselayout, voir "ARPING Gateway configuration" dans /etc/conf.d/net.example

(Sous debian et dérivées il y a guessnet (et les autres outils similaires, cf la faq))

Après sous gentoo il est possible de configurer les interfaces lorsqu'elles sont branchées (ou lorsque le killswitch est activé pour du WiFi) avec netplug ou ifplugd (voir "Cable in/out detection" dans /etc/conf.d/net.example)

(ifplugd marche aussi pour debian et dérivées il semblerait)

Donc en activant les 2 : j'arrive à un endroit, j'allume le portable, si je branche un câble, il va activer l'interface, détecter le réseau sur lequel il arrive et configurer comme il faut, et si j'active le killswitch pour allumer le WiFi il va faire de même.

Enfin il y a moyen de faire tout ce qu'on veut avec preup/predown/postup/postdown (toujours voir /etc/conf.d/net.example)

Lien vers le commentaire
Partager sur d’autres sites

Donc en activant les 2 : j'arrive à un endroit, j'allume le portable, si je branche un câble, il va activer l'interface, détecter le réseau sur lequel il arrive et configurer comme il faut, et si j'active le killswitch pour allumer le WiFi il va faire de même.

C'est a peu près exactement ce que je vais faire... Le hic c'est que j'ai jamais réussi à me connecter au wifi d'une livebox en utilisant le /etc/conf.d/net : le '-' de WANADOO-XX bloquait, de souvenir.

Je vais m'y repencher car ce sera surement plus complet que le script que je pensais faire :oops: .

A titre d'exemple, pour me guider, est-ce que tu pourai poster tes net et wireless, s'il te plait :craint: ? :-D

:francais:

Lien vers le commentaire
Partager sur d’autres sites

ça va être simple...

ma configuration ressemble totalement à ce qui est dans le net.example

et je met toute la configuration du WiFi dans /etc/conf.d/wireless (cf le wireless.example)

et j'utilise preferred_aps pour choisir les points d'accès, et pour info comme c'est marqué dans le wireless.example, tous les caractères spéciaux des essid sont remplacés par des '_' , donc ça pourrait donner quelque chose comme :

preferred_aps=("EsSiD" "ESsId-2" )

key_EsSiD="s:cle1"

config_EsSiD=( "dhcp" )

key_ESsId_2="s:cle2"

config_ESsId_2=( "192.168.0.2/24" )

routes_ESsId_2=( "default via 192.168.0.1" )

dns_servers_ESsId_2=( "192.168.0.1" )

bien sûr il est possible d'utiliser arping sur un réseau WiFi, mais en général on a une configuration par point d'accès

et il y a ce qu'il faut dans wireless.example pour arriver à identifier les points d'accès (par exemple avec leur adresse MAC)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je cherche à faire un petit script permettant de connecter mon ordi portable au bon réseau. Ce script se lancerai au démarrage ou sur demande pour changer le portable de réseau (filière <=> wifi, chez_moi <=> wifi_d'amis, ...)

Je cherhe donc le moyen de savoir si un cable réseau filère est branché sur la carte réseau (sans avoir à configurer la carte et faire de ping...). => Pour savoir si il y a beasoin d'activer le wifi.

Est-ce que c'est possible de lister les ordinateurs/routeurs connectés à un réseau (les ip)? => pour savoir "où" on se trouve et lancer en fonction soit le client DHCP, soit configurer le réseau et lancer le clien NFS, ...

voilà... je pense que j'ai fais le tour. Je précise que je suis sous gentoo.

Merci de me faire parvenir vos remarques :)

Tu connais networkmanager ? Ca fonctionne tres bien chez moi.

Lien vers le commentaire
Partager sur d’autres sites

Re,

Le système de gestion de gentoo à l'air vraiment complet. Je vais donc chercher à l'utiliser. (Ca fait un peu plus geek en plus :chinois: )

J'ai configuré le réseau fixe: si je branche le portable sur le "bon" réseau (où mon server se trouve), il prend la configuration correct pour avoir internet. Sinon, il lance un système dhcp (pas testé mais normalment c'est bon) et dans le dernier des cas, il prend une configuration bateau.

** Est-ce possible de lancer une application/démon s'il se connecte sur le "bon" réseau? Je pense en premier à 'nfsmount'.

Pour le wifi, c'était un peu plus laborieux... Mais ça à l'air de marcher!

** Même question: on peut lancer un service si la connection c'est bien etablie?

** Est-ce que c'est possible de désactiver le wifi quand un cable est branché? (et de l'ctiver si il est débrancher) J'ai pas trouver mention du killswitch.

Lien vers le commentaire
Partager sur d’autres sites

J'ai configuré le réseau fixe: si je branche le portable sur le "bon" réseau (où mon server se trouve), il prend la configuration correct pour avoir internet. Sinon, il lance un système dhcp (pas testé mais normalment c'est bon) et dans le dernier des cas, il prend une configuration bateau.

** Est-ce possible de lancer une application/démon s'il se connecte sur le "bon" réseau? Je pense en premier à 'nfsmount'.

Pour le wifi, c'était un peu plus laborieux... Mais ça à l'air de marcher!

** Même question: on peut lancer un service si la connection c'est bien etablie?

Réponse dans le post #2 :

preup/predown/postup/postdown (toujours voir /etc/conf.d/net.example)
** Est-ce que c'est possible de désactiver le wifi quand un cable est branché? (et de l'ctiver si il est débrancher) J'ai pas trouver mention du killswitch.

Ouais je pense, de la même manière que pour les programmes, il y a moyen de modifier le killswitch de manière logicielle en pre/postup et pre/postdown.

Pour les pilotes ipw, dans /sys il y a normalement un fichier qui s'appelle "rf_kill" associé au driver WiFi (moi par exemple c'est /sys/bus/pci/drivers/ipw3945/*/rf_kill).

read -

0 = RF kill not enabled (radio on)

1 = SW based RF kill active (radio off)

2 = HW based RF kill active (radio off)

3 = Both HW and SW RF kill active (radio off)

write -

0 = If SW based RF kill active, turn the radio back on

1 = If radio is on, activate SW based RF kill

NOTE: If you enable the SW based RF kill and then toggle the HW

based RF kill from ON -> OFF -> ON, the radio will NOT come back on

En gros, mettre "1" dedans si le WiFi marche permet de désactiver le WiFi, et mettre "0" dedans remet comme avant.

Il faut tout de même que le bouton wifi soit activé, il n'est pas possible d'activer le wifi magiquement (question de sécurité).

Lien vers le commentaire
Partager sur d’autres sites

En fait, si j'avais déjà vu ces fonctions. Mais elles ne se lances quand à l'exécution du script /etc/init.d/net.ethX start/stop.

Or se script est lancé au démarrage/arrêt de l'ordinateur, quelque soit le réseau sur lequel il se connectera... Ces fonctions n'ont donc rien à voir avec la mise en attente ou la connection+configuration des interfaces. Il ne peux donc pas réagir comme je le souhaite: je débranche, le wifi s'active; je branche, mes partoch NFS se monte et le wifi se désactive.

A moins que j'ai oublié une facette de leur utilisation :yes:

Mon idée serai de créer un "demon" qui exécute les fonctions_qui_vont_bien dès qu'un évènement branchement/débranchement est reçu.

Ou puis-je trouver de la doc sur les démons (je ne suis que démoniste 60 :s ==> [])? Est-ce fesable à mon niveau (60 :-D ) (shell moyen, début de C :byebye: )?

Y'aurai pas une autre solution deux fois plus simple?

Pour ce qui est du "rf_kill", c'est génial! Un trop peu bourrin : je ne sais pas encore trop à quoi il va me servir, mais je trouverai! :roll:

Lien vers le commentaire
Partager sur d’autres sites

En fait, si j'avais déjà vu ces fonctions. Mais elles ne se lances quand à l'exécution du script /etc/init.d/net.ethX start/stop.
Avec netplug, elles se lancent lorsque l'interface devient active/se désactive.
Or se script est lancé au démarrage/arrêt de l'ordinateur, quelque soit le réseau sur lequel il se connectera...
La même fonction est lancée pour toutes les interfaces, c'est vrai, par contre les variables "${IFACE}" et "${IFVAR}" contiennent les interfaces qui sont en train d'être activées/désactivée (et même "${ESSID}" à priori)
Ces fonctions n'ont donc rien à voir avec la mise en attente ou la connection+configuration des interfaces. Il ne peux donc pas réagir comme je le souhaite: je débranche, le wifi s'active; je branche, mes partoch NFS se monte et le wifi se désactive.
Si, ces fonctions ont à voir avec la connexion/configuration des interfaces... Donc si, ça doit pouvoir le faire à mon avis...
A moins que j'ai oublié une facette de leur utilisation :byebye:
Tu as lu cette partie du net.example ou pas? :yes:
Mon idée serai de créer un "demon" qui exécute les fonctions_qui_vont_bien dès qu'un évènement branchement/débranchement est reçu.
Ben justement avec netplug, comme je le disais précédemment dans ce post et dans les posts précédents, tout cela est dynamique et est déjà géré, et les fonction preup/predown/postup/postdown sont exécutées lorsque les événements de branchement/débranchement sont reçus.
Ou puis-je trouver de la doc sur les démons [...] ?

Y'aurai pas une autre solution deux fois plus simple?

Tu peux par exemple essayer d'utiliser les fonctions preup/predown/postup/postdown... enfin moi je dis ça, je dis rien hein :roll:
Lien vers le commentaire
Partager sur d’autres sites

:pleure::cartonrouge::cartonrouge:

Effectivement, un simple "echo" dans les boucles ne permet absolument pas de savoir quand elle sont lancée XD . Je vais mettre ça sur le compte de la fatigue ;)

Bon, maintant le système à l'air de fonctionner! Tout ce passe correctement... chez moi en tout cas :ouioui:

Seul point noir: quand j'appuys sur le bouton de ma carte wifi (on/off), ce n'est pas considéré comme un évènement qui relance le script. Donc si elle n'est pas activé quand je débranche le cable ben il faut que je la lance manuellement...

J'ai zappé un passage? C'est normal?

edit: PS: 100ème messages!! :pleure:

Lien vers le commentaire
Partager sur d’autres sites

Seul point noir: quand j'appuys sur le bouton de ma carte wifi (on/off), ce n'est pas considéré comme un évènement qui relance le script. Donc si elle n'est pas activé quand je débranche le cable ben il faut que je la lance manuellement...

Ben comme je l'ai dit dans un précédent message, il n'est pas possible de démarrer le WiFi depuis un script pour des raisons de sécurité.

Après par contre si le WiFi est démarré manuellement, que tu branche un câble, puis le débranche, là ça devrait repartir si tu n'as pas oublié de débloquer le rf_kill à ce moment là.

Enfin je n'ai pas testé, mais c'est simple à vérifier... (et au pire il suffit de relancer le script /etc/init.d/net.[eth1,vlan0] à ce moment là)

Lien vers le commentaire
Partager sur d’autres sites

Ouai, en fait, c'est parce que quand la carte wifi est bloquée(HW), net.eth1 à l'air killé. Donc c'est normal qu'il ne me prennent pas l'evennement du débloquage...

Par contre tout le reste fonctionne!! vive gentoo :roll:

merci :eeek2:

Demain, je connecte mon grille pain à ma machine à lavée!

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...