2 votes

PPPoE Auto-connexion en cas de débranchement

J'ai une connexion internet PPPoE que j'utilise sur mon Macbook Pro.

Il y a une case à cocher dans les paramètres qui permet de se reconnecter automatiquement en cas de besoin - ce qui est bien. Cependant, le système n'est pas assez intelligent pour arrêter d'essayer lorsque je débranche le câble Ethernet.

Lorsque je débranche l'Ethernet pour partir, il me dit toutes les 5 minutes qu'il a échoué à se connecter. Jusqu'à ce que je décoche la fonction de connexion automatique. Ensuite, bien sûr, lorsque je rentre chez moi, je dois la revérifier, ce qui va à l'encontre de l'objectif de la connexion "automatique".

1voto

moodforaday Points 2633

1) Solution facile : utiliser Sidekick pour modifier automatiquement l'emplacement de votre réseau (et un grand nombre d'autres paramètres) en fonction du réseau sur lequel vous vous trouvez.

A part : Sidekick est la nouvelle version d'une application qui était auparavant connue sous le nom de NetworkLocation.app mais il a été complètement réécrit. J'ai été bêta-testeur de l'application, mais j'en suis également un client payant et je n'ai aucun autre lien avec l'application.

L'application coûte 29 dollars, mais il existe une version de démonstration que vous pouvez utiliser pour voir comment elle fonctionne avant de l'acheter. Hautement recommandé.

2) Si vous voulez une solution gratuite, vous pouvez écrire un shell script qui s'exécute via launchd. D'abord, vous auriez besoin d'un fichier plist, quelque chose comme ceci :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AbandonProcessGroup</key>
    <true/>
    <key>Label</key>
    <string>localhost.networkmonitor</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/shell/script.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>120</integer>
    <key>WatchPaths</key>
    <array>
        <string>/Library/Preferences/SystemConfiguration/</string>
    </array>
</dict>
</plist>

Changement /path/to/your/shell/script.sh à n'importe quel chemin que vous finissez par faire à votre shell script (et assurez-vous que le script est exécutable) :

chmod 755 /path/to/your/shell/script.sh

La partie difficile est le script lui-même. Il y a deux façons de le faire :

"La méthode SSID"

En fait, vous devez trouver un moyen programmatique de savoir quand vous êtes chez vous (c'est-à-dire quand vous voulez utiliser PPPoE) et quand vous ne l'êtes pas. Le site le plus facile La meilleure façon de le faire est de déterminer sur quel réseau Wi-Fi vous vous trouvez.

NOTE : Je vais supposer que vous avez configuré un nouvel emplacement réseau appelé "PPPOE" que vous voulez utiliser lorsque vous êtes à la maison, par opposition au générique "Automatic" qui sera utilisé ailleurs.

La première partie du script pourrait ressembler à ceci :

#!/bin/sh

    # Apple provides a utility called 'airport' but it's buried outside of the normal $PATH
    # so you'll have to call it directly (or link it to somewhere in your $PATH using 'ln -s')
    # this is the correct path for Snow Leopard and Lion. I think it had a different path
    # in earlier versions of OS X but I'm not sure
AIRPORT='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport'

    # get the SSID of the network you are connected to
SSID=`${AIRPORT} -I | awk -F": " '/ SSID:/{print $NF}'`

Ensuite, vous devez effectuer différentes actions en fonction du SSID, ce qui pourrait ressembler à ceci (remplacez 'mySSID' par le SSID de votre domicile)

if [ "$SSID" = "mySSID" ]
then
    # Select your 'PPPOE' network location (or whatever you called it)
    scselect PPPOE

else
    # If we are not on that Wi-Fi network, select the default 'Automatic' network location
    scselect Automatic
fi

Si vous ne disposez PAS d'un réseau Wi-Fi à domicile, vous devrez alors chercher le absence d'un SSID, qui pourrait ressembler à ceci

if [ "$SSID" = "" ]
then
    # no Wi-Fi network found, let's assume that we are at home
    scselect PPPOE

else
    # if there is a Wi-Fi network, let's use the 'Automatic' network location
    scselect Automatic
fi

exit 0
# (End of script)

Pièges potentiels : lorsque l'ordinateur se réveille pour la première fois, il lui faut quelques secondes pour se connecter à un réseau Wi-Fi. Vous devrez peut-être ajouter des commandes de "mise en veille" pour éviter de changer d'emplacement avant que toutes les informations sur le réseau aient été mises à jour.

"La voie Ethernet vs Wi-Fi"

Aux fins de cette discussion, "Ethernet" signifie que "l'ordinateur est branché à un réseau par un câble physique".

Si vous n'utilisez Ethernet qu'à la maison, une autre option consiste à désactiver votre port Ethernet lorsqu'il n'est pas utilisé (ce que j'ai fait). supposez signifie que PPPOE n'essaiera pas de se connecter, mais cela peut être une supposition incorrecte).

J'ai déjà écrit un script qui fait cela, que vous pouvez trouver ici : http://dl.dropbox.com/u/18414/ase/29227/wired-no-wifi.sh que vous pourriez utiliser avec launchd.

Notez que script suppose que votre port Ethernet est en0 et que votre port Wi-Fi est en1.

note de lancement

Je suppose que vous savez que votre plist pour launchd doit être stocké dans ~/Library/LaunchAgents et qu'après en avoir ajouté un nouveau, il faut soit se déconnecter/se connecter, soit utiliser la fonction launchctl load comme ça :

launchctl load ~/Library/LaunchAgents/YourLaunchdFileHere.plist

Sérieusement, essayez Sidekick

Tout d'un coup, 30 dollars semblent plutôt bon marché, n'est-ce pas ?

Oui, vous pouvez faire tout cela en ligne de commande, mais Sidekick peut faire tout cela et plus encore, et beaucoup plus facilement. A moins que vous ne soyez extrêmement pauvre, bon marché, et/ou nerd, je vous recommande fortement de préférer Sidekick à la ligne de commande. launchd -- mais j'aime toujours autant pouvoir aller "sous le capot" et bricoler ce genre de choses.

0voto

iskra Points 5378

Utilisez une fonctionnalité de localisation. Il s'agit de la boîte combo la plus élevée sous Network preferences .

Choisissez Modifier les emplacements, créez-en un nouveau, Appliquez et vous pourrez ensuite basculer entre votre domicile (avec la connexion automatique PPPoE) et d'autres emplacements à partir du menu Apple.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X