0 votos

Ejecutar un script para iniciar la sesión de WiFi al conectarse

La red de mi escuela tiene un portal cautivo. El uso de "copiar como cURL" de Google Chrome parece que me permite iniciar la sesión mediante curl, pero quiero automatizar este proceso para que se produzca en cuanto el mac se conecte a la Wi-Fi. ¿Cómo puedo conseguirlo? El comando curl es el siguiente:

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

El nombre de la red es SCLSCHOOL_G, SCLSCHOOL_F y SCLSCHOOL_H.

3voto

Douglas Puntos 10417

No hay nada que te permita lanzar un script cuando te conectas a una red concreta, así que tendrás que utilizar dos herramientas

  • launchctl Tendrás que iniciar el trabajo en función de la disponibilidad de la red. Por desgracia, esto sólo comprueba si estás conectado a cualquier red, no a una específica.
  • networksetup que obtiene el SSID actual al que estás conectado. El comando que necesitarás es

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

Luego en un bash script, compara la salida de ese comando y si coincide con el SSID que quieres, ejecuta el curl comando.

0 votos

¿Te importaría explicar cómo utilizar esas dos herramientas? No estoy familiarizado con el uso de herramientas en un bash script.

0 votos

Y realmente no me importa ejecutar el comando curl para cada red. Mi red doméstica no tiene un dispositivo que tiene la misma ip por lo que realmente no importa.

0voto

awy Puntos 500

También puede ponerlo como script para todas las aplicaciones y utilizar script el botón de la barra de menús del Editor que se encuentra cerca del botón Wi-Fi. ~/Library/Scripts es la carpeta donde los scripts son accesibles a todas las apps.

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

0voto

Joy Jin Puntos 11

Al final, he utilizado DSSW Power Manager para automatizar este proceso. Ejecuto el comando curl cuando despierto el macbook pro, y apago el Wifi cuando duermo el macbook pro (en caso de que se conecte automáticamente), y especifico el rango de tiempo para que sea el tiempo que estoy en la escuela. Si alguien tiene el mismo problema y a veces no puede entrar al Wifi en la primera conexión (curl devuelve el error 7), mi (pez) script está abajo:

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X