Forceer reconnect?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
Weet iemand of er een terminal commando is om MacOS te forceren opnieuw te verbinden met WiFi? :)

Ik weet dat je natuurlijk simpelweg de nic uit kan zetten en weer inschakelen, dat gaat heel snel; maar dat levert een ongewenst effect op: applicaties worden direct geïnformeerd dat het netwerk niet meer beschikbaar is en zullen veelal een disconnect doen. Terwijl bij een reconnect ze heel even wachten en gewoon de verbinding in stand houden als je binnen een paar seconden weer terug bent met 't zelfde IP.

Ik heb me rot gezocht op Google, StackExchange, et cetera; maar ik krijg of irrelevante onzin of het standaard riedeltje met uitleg hoe je het uit en weer aan kan zetten.
Dus óf het kan niet, óf het juiste antwoord is nog niet helder ergens gepost :P

-edit-
Voor de duidelijkheid: ik zoek dus een beetje soortgelijk commando zoals “wpa_client reassociate” onder Linux. Dat zorgt ervoor dat niet de hele interface uit/aan gaat, maar hij gewoon opnieuw verbind met het netwerk waar je al mee verbonden bent zonder de radio tussendoor uit te schakelen.

[ Voor 17% gewijzigd door WhatsappHack op 18-08-2018 02:12 ]

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)

Alle reacties


Acties:
  • +1 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Option vast houden terwijl je op het menu klikt.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
CyBeR schreef op vrijdag 17 augustus 2018 @ 22:26:
Option vast houden terwijl je op het menu klikt.
Het moet geautomatiseerd, dus ik bedoel vanaf de terminal. :)
Heb dat er even bijgezet in de fipo.


Bedenk me net dat het misschien met een wat omslachtige omweg kan, tegen en0 zeggen dat ie verbinding moet maken met een ander WiFi netwerk (gewoon bs naam "hidden SSID" die helemaal niet bestaat) en dan meteen het commando sturen om weer terug te gaan naar het origineel... Dat zouuuuu misschien werken (moet ik even uitvogelen hoe dat te doen), maar zou wel omslachtig zijn en nog steeds zou een simpel "reconnect" commando (dus reconnect met 't zelfde netwerk) beter zijn.

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)


Acties:
  • +1 Henk 'm!

  • Vorkie
  • Registratie: September 2001
  • Niet online

Acties:
  • +1 Henk 'm!

  • Marco1994
  • Registratie: Juli 2012
  • Laatst online: 21:09
Doet dit wat je wil? Heb zo snel niet de mogelijkheid om het te testen helaas. https://alvinalexander.co...x-networking-command-line

Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
Yep! Heb ook de man pagina van networksetup al behoorlijk ver doorgenomen (is nogal een uitgebreid commando :P), maar kon zo snel nog niets vinden. Wel allerlei toggles waarvan ik eens moet testen als je die aanpast of ie dan uit zichzelf al een reconnect doet puur om de setting in effect te laten gaan... Dat zou ook prima zijn, gewoon iets niet noemenswaardig off/on togglen en voila. :P
Marco1994 schreef op vrijdag 17 augustus 2018 @ 22:32:
Doet dit wat je wil? Heb zo snel niet de mogelijkheid om het te testen helaas. https://alvinalexander.co...x-networking-command-line
Nee dat beschrijft precies wat ik niet wil: de interface uit en weer aanzetten :)

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)


Acties:
  • +1 Henk 'm!

  • Marco1994
  • Registratie: Juli 2012
  • Laatst online: 21:09
Hmm als het gaat om het refreshen van een dhcp lease, zou dit wellicht moeten werken. http://osxdaily.com/2013/02/11/renew-dhcp-lease-mac-os-x/

Acties:
  • +1 Henk 'm!

  • DoeEensGek
  • Registratie: Maart 2009
  • Laatst online: 28-09 22:19
Is het niet mogelijk om te wisselen van netwerk om vervolgens weer terug te wisselen?

Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
Marco1994 schreef op vrijdag 17 augustus 2018 @ 23:15:
Hmm als het gaat om het refreshen van een dhcp lease, zou dit wellicht moeten werken. http://osxdaily.com/2013/02/11/renew-dhcp-lease-mac-os-x/
Nee het gaat echt puur om een reassociate te doen.
Als je je mac-adres wijzigt klapt de verbinding eruit en duurt het lang voordat MacOS zelf opnieuw gaat verbinden. Als er nou een notify commando was om dat meteen te gaan doen ipv om het proces te versnellen perse in/uitschakelen zou al schelen, maar dat kan ik dus zo 1,2,3 niet vinden. Maar misschien dat DHCP-lease vernieuwen er wel voor zorgt dat ie dat meteen doet... Kan het proberen als work-around. :P

Het irritante is dat networksetup ook doodleuk kan laten zien wat je favoriete netwerken zijn, maar het is blijkbaar niet mogelijk om networksetup -setairportnetwork en0 <SSID> te doen zonder een wachtwoord mee te geven. :+ (Plus dat commando lijkt wat moeite te hebben met zeer speciale tekens in het SSID)
Dat gaat eigenlijk nergens over, want als ie ziet dat het in bereik is en hij weet dat het een favoriet is en dus dat hij het wachtwoord heeft: dan zou je denken dat ie gewoon verbind. Maar nee. :P
Dit zou dan voor thuis op zich wel werken, maar dit is niet bedoeld om op m'n thuisnetwerk te draaien. :')
DoeEensGek schreef op vrijdag 17 augustus 2018 @ 23:17:
Is het niet mogelijk om te wisselen van netwerk om vervolgens weer terug te wisselen?
Ja dat stelde ik ook al voor in de 2e post van het topic.
Helaas lijkt dat niet helemaal lekker te werken wegens bovenstaand probleem met networksetup.

Ik had al een simpel bash scriptje geschreven wat het volgende razendsnel doet in deze volgorde:
- Genereer random MAC -> $randmac
- Genereer random SSID -> $randssid (doe alsof het een hidden netwerk is)
- Vraag huidige SSID op -> $curssid (Curse it? :P)
- Forceer verbinding met hidden $randssid
- Stel $randmac in
- Verbind meteen weer met $curssid
(Dit kan misschien slimmer overigens, misschien dat die $randssid niet nodig is... Misschien is gewoon het commando geven om met $curssid te verbinden al voldoende om te re-connecten. ;) Maar dat kan ik dus nog niet testen. :+)

Het probleem daarmee is
1.) Verbinden met $randssid geeft een vertraging, maar dat kan makkelijk opgelost worden met een kill
2.) Verbinden met $curssid gaat niet, omdat je blijkbaar verplicht bent om een wachtwoord mee te geven; ook als het netwerk al bekend is op je Macbook. :+

Daarnaast weet ik niet of, als hij de verborgen SSID niet kan vinden, hij überhaupt een poging onderneemt om de huidige verbinding eruit te knikkeren. Niet dat dat een onoverkoombaar probleem is, dan laat je hem gewoon scannen naar netwerken en er eentje kiezen die niet in de favorieten lijst staat én niet open is. :P Maarja, dat zal ook niet altijd werken.

Kom er op een gegeven moment vast uit, maar had gehoopt dat er gewoon een simple "reconnect" of "reassociate" commando is dat ik over het hoofd had gezien - aan jullie reacties te zien ben ik bang dat dat niet het geval is :P

[ Voor 4% gewijzigd door WhatsappHack op 18-08-2018 01:04 ]

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)


Acties:
  • +1 Henk 'm!

  • Will_M
  • Registratie: Maart 2004
  • Niet online

Will_M

Intentionally Left Blank

Ik weer niet wat je probleem is en waarom je dus wil reconnecten maar kun je het niet aan de andere kant van de verbinding op lossen?

Shut
No Shut

😉

Boldly going forward, 'cause we can't find reverse


Acties:
  • +1 Henk 'm!

  • MelvinW
  • Registratie: Juli 2014
  • Laatst online: 17:02
@WhatsappHack Dit zou moeten werken:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z && networksetup -setairportnetwork en0 WIFI_SSID WIFI_WACHTWOORD
Eerste commando zorgt voor de disconnect en het tweede commando verbindt met het aangegeven netwerk. Als je Auto-Join aan hebt staan, dan is alleen het eerste commando wellicht voldoende. Kan het zelf even niet testen.

Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
Nogmaals dank voor alle reacties so far :)
wimmel_1 schreef op zaterdag 18 augustus 2018 @ 01:06:
Ik weer niet wat je probleem is en waarom je dus wil reconnecten maar kun je het niet aan de andere kant van de verbinding op lossen?

Shut
No Shut

😉
Nope. Ten eerste kan dat meestal überhaupt niet behalve de complete radio uit/inschakelen waardoor alle clients een disconnect doen (wat absoluut niet de bedoeling is :P), ten tweede is het uitgangspunt daar geen controle over te hebben. Tenslotte geeft dat denk ik een soortgelijk probleem omdat ook dan een if uit en weer inschakelt, maar wie weet - het is echter hoe dan ook geen optie in dit geval :P De Mac moet het echt zélf doen.

In Linux kan je heel simpel “wpa_client reassociate” doen. Ik was op zoek naar een soortgelijk commando onder MacOS, het verbaast me dat het er blijkbaar niet is. :) Want ook in roaming netwerken kan dat rete handig zijn als je Mac om wat voor reden dan ook vast blijft houden aan een andere AP met intussen zwak bereik terwijl er een andere is met sterker bereik.

Ik wil overigens reconnecten om connection loss te voorkomen/sterk te beperken. (Had ik al vermeld trouwens :P)
MelvinW schreef op zaterdag 18 augustus 2018 @ 01:12:
Eerste commando zorgt voor de disconnect en het tweede commando verbindt met het aangegeven netwerk. Als je Auto-Join aan hebt staan, dan is alleen het eerste commando wellicht voldoende. Kan het zelf even niet testen.
Maar dat zeg ik net in m’n laatste post: dan moet je blijkbaar het wachtwoord verplicht meegeven en dat is geen optie. ;(
Het moet universeel kunnen werken.

Hij weigert om te verbinden als je geen wachtwoord meegeeft, zelfs als het netwerk al bekend is op je Mac wil ie alsnog dat je het meegeeft. Dat is een beetje stompzinnig natuurlijk, zeker omdat hetzelfde commando doodleuk kan laten zien wat je “favoriete” netwerken zijn en dus weet dat het wachtwoord bekend is voor je systeem :+, maar helaas...

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)


Acties:
  • +1 Henk 'm!

  • MelvinW
  • Registratie: Juli 2014
  • Laatst online: 17:02
WhatsappHack schreef op zaterdag 18 augustus 2018 @ 02:10:
Nogmaals dank voor alle reacties so far :)


[...]


Nope. Ten eerste kan dat meestal überhaupt niet behalve de complete radio uit/inschakelen waardoor alle clients een disconnect doen (wat absoluut niet de bedoeling is :P), ten tweede is het uitgangspunt daar geen controle over te hebben. Tenslotte geeft dat denk ik een soortgelijk probleem omdat ook dan een if uit en weer inschakelt, maar wie weet - het is echter hoe dan ook geen optie in dit geval :P De Mac moet het echt zélf doen.

In Linux kan je heel simpel “wpa_client reassociate” doen. Ik was op zoek naar een soortgelijk commando onder MacOS, het verbaast me dat het er blijkbaar niet is. :) Want ook in roaming netwerken kan dat rete handig zijn als je Mac om wat voor reden dan ook vast blijft houden aan een andere AP met intussen zwak bereik terwijl er een andere is met sterker bereik.

Ik wil overigens reconnecten om connection loss te voorkomen/sterk te beperken. (Had ik al vermeld trouwens :P)


[...]


Maar dat zeg ik net in m’n laatste post: dan moet je blijkbaar het wachtwoord verplicht meegeven en dat is geen optie. ;(
Het moet universeel kunnen werken.

Hij weigert om te verbinden als je geen wachtwoord meegeeft, zelfs als het netwerk al bekend is op je Mac wil ie alsnog dat je het meegeeft. Dat is een beetje stompzinnig natuurlijk, zeker omdat hetzelfde commando doodleuk kan laten zien wat je “favoriete” netwerken zijn en dus weet dat het wachtwoord bekend is voor je systeem :+, maar helaas...
Je zou het dan kunnen combineren met een AppleScript, zodat er automatisch op het WiFi-icoon in de menubar geklikt wordt en het WiFi-netwerk weer geselecteerd wordt. Dat is de enige manier die ik kan bedenken waarbij er geen wachtwoord ingevoerd hoeft te worden. Dit in Terminal invullen zou moeten werken:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z && osascript -e 'tell application "System Events"
tell process "SystemUIServer"
click (menu bar item 1 of menu bar 1 whose description contains "Wifi")
click menu item "WIFI_SSID_HIER_INVULLEN" of menu 1 of result
end tell
end tell'

Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
MelvinW schreef op zaterdag 18 augustus 2018 @ 02:14:
Je zou het dan kunnen combineren met een AppleScript, zodat er automatisch op het WiFi-icoon in de menubar geklikt wordt en het WiFi-netwerk weer geselecteerd wordt. Dat is de enige manier die ik kan bedenken waarbij er geen wachtwoord ingevoerd hoeft te worden. Dit in Terminal invullen zou moeten werken:

code:
1
2
3
4
5
6
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z && osascript -e 'tell application "System Events"
tell process "SystemUIServer"
click (menu bar item 1 of menu bar 1 whose description contains "Wifi")
click menu item "WIFI_SSID_HIER_INVULLEN" of menu 1 of result
end tell
end tell'
Dat is interessant, thanks! Dat zou misschien kunnen werken :)
Ben niet zo heel bekend met AppleScript ben ik bang. Gewoon totaal niet. :P
Werkt het definiëren van variabelen daar hetzelfde als in bash?

Ik had heel snel (heel smerig quick & dirty, pas op voor oogaids en niet schrikken :P) een bashscriptje geschreven om te testen, as such:
code:
1
2
3
4
5
6
randmac="$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')";
curssid="$(networksetup -getairportnetwork en0 | cut -c 24-)";
randssid="$(date +%s | shasum | base64 | head -c 32)";
sudo networksetup -setairportnetwork en0 "$randssid"
sudo ifconfig en0 ether "$randmac"
sudo networksetup -setairportnetwork en0 "$curssid"

(Dat werkt dus niet zoals gewenst, overigens. :+ Vanwege die vervelende beperkingen.)

Nu moet ik dus, mits airport -z werkt (ik ben bang dat dat hetzelfde resultaat oplevert als "Verbreek verbinding" aanklikken, en dat gaat dénk ik helaas mis - maar ik wil het graag testen! :)), dan dus:
1.) randmac genereren
2.) airport -z
3.) ifconfig commando voor $randmac
4.) associate met $curssid via dat applescript
(Of dit alles moet via AppleScript gebeuren, maar ik weet niet hoe je variabelen e.d. instelt en wat de syntax is voor commando's met AppleScript)

Trouwens, misschien kan het ook wel anders werken...
Je genereert $randmac, je laat dat AppleScript op een willekeurig netwerk in de WiFi-lijst klikken (*behalve* $curssid uiteraard! - Dan doet ie ook niet direct een disassociate volgens mij, dan blijft ie "standby" hangen), je stelt $randmac in en dan laat je het AppleScript op $curssid klikken... :P

Is dat makkelijk te doen in AppleScript?
Dan ga ik namelijk ff ergens een tutorial naar boven Google'en, zal vast niet super moeilijk zijn :P

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Kan je niet beter gewoon een stukje Siwft of Obj-C schrijven en rechtstreeks associate aanroepen op de airport interface? Heb je precies wat je wil met 1 function call.

https://developer.apple.c...terface/1426455-associate

Acties:
  • +2 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23-09 14:00
Wat is eigenlijk de reden dat je geautomatiseerd opnieuw wilt verbinden? Want dit klinkt als een netwerk probleem dat je nu op de verkeerde plaats probeert op de lossen.

Acties:
  • 0 Henk 'm!

  • jvanhambelgium
  • Registratie: April 2007
  • Laatst online: 28-09 19:59
En waarom zou je effe je MAC adress on the fly willen aanpassen ?
In welke praktische context moeten we dit zien ?

Acties:
  • 0 Henk 'm!

  • DoeEensGek
  • Registratie: Maart 2009
  • Laatst online: 28-09 22:19
@WhatsappHack
sudo ipconfig set (DEVICEINTERFACE) DHCP

Zomaar een andere gedachten. ;)
Pagina: 1