Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Netzwerke>Netzlaufwerk verbinden mit Skript -- vorab testen ob man im Heim-Netzwerk oder extern ist

Netzlaufwerk verbinden mit Skript -- vorab testen ob man im Heim-Netzwerk oder extern ist

killerspots29.12.2218:35
Moin zusammen,

dies wurde sicherlich schon mal behandelt, so richtig fündig wurde ich aber nicht.

Es geht wieder einmal um das Verbinden von freigegebenen Netzlaufwerken in einer Finder-Umgebung:
Ich habe auf meinem Synology NAS einige unterschiedliche freigegebene Ordner (music, projekte, video, sync), mit denen ich mich selektiv auf Knopfdruck verbinden möchte. Teilweise haben einzelne Ordner auch verschiedene Nutzer und Passwörter, die ich nutzen muss.

Ich möchte mir nun für jeden zu verbindenden Ordner ein kleines Skript schreiben und mir dieses als Programm ins Dock packen. In dem Skript soll nun erst einmal geprüft werden, ob ich mich im Heimnetzwerk befinde und er sich direkt über die interne IP mit dem Laufwerk verbinden kann oder ob ich mich extern befinde und über meine DDNS Adresse verbinden muss. Dann soll das Skript entweder über die interne oder externe Ip das Laufwerk verbinden und aktivieren mit dem korrekten Username und Passwort.

Wie würde ich das sinnvoll anstellen?

Ich danke Euch für kurze Hinweise in die richtige Richtung.
0

Kommentare

marm29.12.2219:26
Bei mir startet nach dem Einschalten BetterTouchTool automatisch. Nach dem Start von BTT wartet es 10 Sekunden ("After BTT did launch" in Automation & Trigger) und startet einen Kurzbefehl, der die Netzlaufwerke verbindet. Gestern habe ich hier noch einen Kurzbefehl reingestellt, der testet, ob man sich im Heimnetz befindet, damit wäre dein Skript komplett .
0
killerspots29.12.2220:58
marm

hmm, ich wollte eigentlich nicht mit Shortcuts arbeiten sondern mir direkt in AppleScript was schreiben. Ausserdem fahre ich selten meinen Rechner runter sodass mir dein BTT Tipp bei StartUp nicht viel bringt. (Wobei ich mir ja vielleicht nen anderen Trigger bauen könnte…)
0
AidanTale29.12.2221:00
Ich hätte ein kleines Shellskript geschrieben, das die interne IP/Hostname anpingt und abhängig vom Ergebnis mounted. Also sowas in der Art:

#!/usr/bin/env bash

# some basic settings
USER=username
INTERNAL_IP="192.168.178.1"
EXTERNAL_IP="1.1.1.1"
MOUNT_PATH="/Volumes/Daten"

# try to ping internal IP
# if successful use it, otherwise use external one
if [[ "$(ping -c1 -t1 $INTERNAL_IP)" = *"1 packets received"* ]] 
then
    SERVER_IP=INTERNAL_IP
else
    SERVER_IP=EXTERNAL_IP
fi

# mount SMB drive
mount_smbfs //$USER@$SERVER_IP/ $MOUNT_PATH
0
marm29.12.2221:31
killerspots
hmm, ich wollte eigentlich nicht mit Shortcuts arbeiten sondern mir direkt in AppleScript was schreiben.
Ist Shortcuts zu einfach?
Eleganter wäre, stets die externe DDNS zu nehmen und in Pihole/Adguard ein DNS Rewrite einzustellen, so dass im eigenen Netz die IP genommen wird.
Wie willst Du das sonst in den Einstellungen von Programmen und Geräten mit zwei Adressen lösen?
+1
MikeMuc29.12.2222:31
Wie immer der Hinweis, das du dir gut überlegen solltest ob du wirklich dein NAS mit ordinären Freigaben direkt ins Netz stellen willst oder du dafür nicht doch besser ein VPN nutzen solltest.
Den Script kann den VPN Connect ja gleich mit erledigen sofern du auswärts bist.
+2
killerspots29.12.2222:45
MikeMuc
Wie immer der Hinweis, das du dir gut überlegen solltest ob du wirklich dein NAS mit ordinären Freigaben direkt ins Netz stellen willst oder du dafür nicht doch besser ein VPN nutzen solltest.
Den Script kann den VPN Connect ja gleich mit erledigen sofern du auswärts bist.

Guter Hinweis, danke.
Was heißt das konkret? Würde ich wenn ich im Heimnetzwerk bin mich einfach über die interne IP zu den Laufwerken verbinden und wenn ich extern bin, würde sich erst das VPN einschalten und dann die interne IP verbinden? Wie würde ich das technisch (in Codeform) bewerkstelligen?
0
killerspots29.12.2222:46
marm
killerspots
hmm, ich wollte eigentlich nicht mit Shortcuts arbeiten sondern mir direkt in AppleScript was schreiben.
Ist Shortcuts zu einfach?
Eleganter wäre, stets die externe DDNS zu nehmen und in Pihole/Adguard ein DNS Rewrite einzustellen, so dass im eigenen Netz die IP genommen wird.
Wie willst Du das sonst in den Einstellungen von Programmen und Geräten mit zwei Adressen lösen?
Soweit hatte ich gar nicht gedacht. Es ging mir weniger um in anderen programmen sondern lediglich darum im Finder die Laufwerke zu mounten.
0
killerspots29.12.2222:47
AidanTale
Ich hätte ein kleines Shellskript geschrieben, das die interne IP/Hostname anpingt und abhängig vom Ergebnis mounted. Also sowas in der Art:

#!/usr/bin/env bash

# some basic settings
USER=username
INTERNAL_IP="192.168.178.1"
EXTERNAL_IP="1.1.1.1"
MOUNT_PATH="/Volumes/Daten"

# try to ping internal IP
# if successful use it, otherwise use external one
if [[ "$(ping -c1 -t1 $INTERNAL_IP)" = *"1 packets received"* ]] 
then
    SERVER_IP=INTERNAL_IP
else
    SERVER_IP=EXTERNAL_IP
fi

# mount SMB drive
mount_smbfs //$USER@$SERVER_IP/ $MOUNT_PATH
Ach, spannend. Habe mit Shellskripten noch nie gearbeitet ehrlicherweise, sondern mich immer nur mit Automator und AppleScript beschäftigt. Aber dein Ansatz ließe sich doch bestimmt auch darauf ausrichten, oder?
0
AidanTale29.12.2223:38
Man kann das sicher irgendwie einbinden, aber für ne App muss man eigentlich nicht viel tun. Es reicht ein File ala Dummy.app anzulegen und darin das Shellskript mit gleichem Namen ohne .app, also im Beispiel Dummy, abzulegen. Dieses muss vermutlich noch ausführbar gemacht werden, also „chmod 755 Dummy“. Und fertig ist die App.
0
MikeMuc30.12.2210:05
killerspots
ja, genau so. Wie das AppleScript konkret aussieht, müßte ich auch erst ausprobieren aber prinzipiell ist es gleich wie bei den Vorschlägen bisher, egal ob AppleScript oder Shell:
- wo bin ich (intern oder extern)
- bin ich extern, also VPN einschalten oder bei Fehler abbrechen
- Verbindung mit interner IP herstellen.


Denkbar ist allerdings auch, das man sich ein Profil für das VPN bastelt welches das VPN bei Bedarf (also Zugriff auf die interne IP des NAS bzw eine Adresse aus dem Adressraum denies Heimnetzwerks automatisch herstellt. Wichtig ist, das dein Heimnetzwerk in einem Bereich liegt den keines deiner sonstigen „Gastnetze“ nutzt.

Alles weitere findest du sicher mit der Suchmaschine deiner Wahl. Vor dem Tor vor dem du stehst, standen andere auch schon, daher sollten sich genügend Beispiele im Internet zu finden sein falls dir die bisher genannten Beispiele nicht reichen. Bei „nicht funktionieren“ fragst du hier halt weiter
+1

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.