0 votes

Exécuter un script pour se connecter au WiFi lors de la connexion.

Le réseau de mon école dispose d'un portail captif. L'utilisation de la fonction "copy as cURL" de Google Chrome semble me permettre de me connecter à l'aide de curl, mais je souhaite automatiser ce processus afin qu'il se produise dès que le mac se connecte au Wi-Fi. Comment pourrais-je y parvenir ? La commande curl est la suivante :

curl 'http://1.1.1.3/ac_portal/login.php' -H 'Connection: keep-alive' -H 'Accept: */*' -H 'Origin: http://1.1.1.3' -H 'X-Requested-With: XMLHttpRequest' -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Mobile Safari/537.36' -H 'DNT: 1' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Referer: http://1.1.1.3/ac_portal/20171018144956/pc.html?template=20171018144956&tabs=pwd&vlanid=0&url=http://www.gstatic.com/generate_204' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh' -H 'Cookie: ac_login_info=passwork; Sessionid=3566675246-1' --data 'opr=pwdLogin&userName=student&pwd=password&rememberPwd=1' --compressed --insecure

Le nom du réseau est SCLSCHOOL_G, SCLSCHOOL_F, et SCLSCHOOL_H.

3voto

Douglas Points 10417

Il n'y a rien qui vous permette de lancer un script lorsque vous vous connectez à un réseau particulier, vous devrez donc utiliser deux outils

  • launchctl Vous devrez commencer le travail en fonction de la disponibilité du réseau. Malheureusement, cela ne vérifie que si vous êtes connecté à un réseau quelconque, et non à un réseau spécifique.
  • networksetup qui obtient le SSID actuel auquel vous êtes connecté. La commande dont vous aurez besoin est

    networksetup -listpreferredwirelessnetworks en1 | grep ${SSID} | cut -f2

Ensuite, dans un bash script, comparez la sortie de cette commande et si elle correspond au SSID que vous souhaitez, exécutez la commande curl commandement.

0 votes

Pourriez-vous nous expliquer comment utiliser ces deux outils ? Je ne suis pas familier avec l'utilisation d'outils dans un script bash.

0 votes

Et cela ne me dérange pas vraiment d'exécuter la commande curl pour chaque réseau. Mon réseau domestique n'a pas d'appareil ayant la même adresse IP, donc cela n'a pas vraiment d'importance.

0voto

awy Points 500

Vous pouvez également le mettre en tant que script pour toutes les applications et utiliser le bouton de la barre de menu de l'éditeur script qui se trouve près du bouton Wi-Fi. ~/Library/Scripts est le dossier où les scripts sont accessibles à toutes les apps.

https://apple.stackexchange.com/a/373438/313842

0voto

Joy Jin Points 1621

Finalement, j'ai utilisé DSSW Power Manager pour automatiser ce processus. J'exécute la commande curl quand je réveille le macbook pro, et j'éteins le Wifi quand je dors le macbook pro (au cas où il se connecte automatiquement), et j'ai spécifié la plage de temps pour être le temps que je suis à l'école. Si quelqu'un a le même problème et n'arrive parfois pas à se connecter au Wifi à la première connexion (curl renvoie l'erreur 7), mon (poisson) script est ci-dessous :

while <curl command> 2>&1| grep \(7\) ; networksetup -setairportpower en0 on ; <curl command>; echo ; sleep 0.1 ; end

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