Frage:
So verwenden Sie die Bildschirmfreigabe, wenn ich die IP-Adresse des Remote-Mac nicht kenne
Birowsky
2019-05-18 18:47:25 UTC
view on stackexchange narkive permalink

Ich habe die Anmeldeinformationen für den Mac, aber es befindet sich niemand im Raum mit dem Computer, der die öffentliche IP-Adresse überprüft.

enter image description here

Wenn ich die öffentliche IP kenne, kann ich eine Verbindung zum Mac herstellen.Leider bietet der ISP nur dynamische IPs an, daher hat sich dies vermutlich kürzlich geändert.

Gibt es eine andere Möglichkeit, Zugriff zu erhalten?

Obwohl dies keine wirklich technische Lösung ist, stellen diese Dienste möglicherweise ein Protokoll mit der neuesten IP-Adresse Ihres Mac bereit, wenn dieser Mac in einer E-Mail (meines Wissens nach Google Mail), einer Synchronisierungslösung usw. angemeldet ist.
Ist der Computer * gerade * bei den iCloud / Apple-Diensten angemeldet?Ist es dein Konto?
-1
Fünf antworten:
Seamus
2019-05-18 19:12:33 UTC
view on stackexchange narkive permalink

Ah!Ja ... Ihre Möglichkeiten sind zu diesem Zeitpunkt begrenzt.Der ISP kann Ihnen helfen, da der DHCP die Adresse zugewiesen hat.Sie wären die einzigen, die das wissen würden.

Das ist mir passiert, und da mein ISP Comcast ist, gibt es keine Hilfe.

In Zukunft :) benötigen Sie "Dynamisches DNS".kostenlos aus verschiedenen Quellen erhältlich.Ich benutze FreeDNS.Es ist irgendwie funky, scheint aber zuverlässig zu funktionieren.

Die andere Alternative (zu dynamischem DNS) ist ein "Roll Your Own" -Ansatz, bei dem Sie einige Skripte schreiben müssen.Wenn Sie dazu bereit sind, lassen Sie mich wissen, dass & von dort aus gehen wird.

Danke.Ich denke, FreeDNS sollte in Zukunft der richtige Weg sein.Meinen Sie damit, die IP in einem Intervall zu veröffentlichen, oder etwas Aufwändigeres?
@Birowsky: Es könnte aufwändiger sein - je nachdem, wie weit Sie es bringen möchten.Da es sich um einen Mac handelt, können Sie ihn regelmäßig ein Skript ausführen lassen, um seine öffentliche IP-Adresse zu überprüfen, ihn mit dem vorherigen Wert zu vergleichen und die Nachrichten-App zu verwenden, um Ihnen eine SMS zu senden, wenn er sich ändert.Aber natürlich benötigen Sie Zugriff auf Ihren Mac, um dieses Skript zu installieren.IMO, FreeDNS ist einfacher, aber das Skript ist mehr, ähm - lehrreich?:) :)
wch1zpink
2019-05-18 22:32:41 UTC
view on stackexchange narkive permalink

Speichern Sie auf dem Remotecomputer den folgenden AppleScript-Code in einem neuen Script Editor.App-Dokument (Script Editor.App befindet sich hier ... / Applications / Utilities / Script Editor.app) als "Stay Open" -Anwendung. Stellen Sie vor dem Speichern dieses Dokuments als Anwendung sicher, dass Sie Ihre aktuelle externe IP-Adresse und die E-Mail-Adresse in die ersten beiden Zeilen des Codes eingeben.

Um zusammenzufassen, was der AppleScript-Code tut, ist einfach ... Alle 15 Minuten wird Ihre aktuelle externe IP-Adresse mit der IP-Adresse verglichen, die Sie in der ersten Zeile des Codes festgelegt haben. Wenn diese beiden IP-Adressen nicht identisch sind, sendet das Skript eine neue E-Mail (an die in der zweiten Zeile des Codes festgelegte E-Mail-Adresse) mit der neuen aktualisierten externen IP-Adresse.

Wenn Sie dann wie beim Öffnen einer anderen Anwendung im Finder auf Ihre neu erstellte App doppelklicken, wird die neue App ausgeführt.

  -Eigenschaft ipAddress: "123.456.7.89" - Aktuelle externe IP-Adresse einfügen (nur einmal festlegen)

Eigenschaft toRecipient: "whoever@gmail.com" - E-Mail zum Abrufen der IP hat Nachrichten geändert

im Leerlauf
    Stellen Sie das IP ein, um das Shell-Skript "curl ifconfig.co" auszuführen.

    Wenn theIP nicht gleich ipAddress ist, dann
        Anwendung "Mail" mitteilen
            Setzen Sie newEmail auf (neue ausgehende Nachricht erstellen)
            Setzen Sie den Inhalt von newEmail auf theIP
            Setzen Sie den Betreff von newEmail auf "IP-Adresse hat sich geändert".
            Erzählen Sie newEmail
                Neu machen für Empfänger mit Eigenschaften {Adresse: toRecipient}
                senden
            Ende erzählen
        Ende erzählen
        setze ipAddress auf theIP
    ende wenn

    Rückkehr (15 * Minuten) - Wartet 15 min. um die IP erneut zu überprüfen
Ende im Leerlauf
 

Vergessen Sie nicht, diese neue AppleScript-Anwendung in den Systemeinstellungen zur Liste der Apps hinzuzufügen, die Ihren Computer steuern dürfen.


UPDATE

Obwohl das obige Skript zu funktionieren scheint, habe ich mich nach mehreren Durchläufen und geringfügigen Änderungen am Code zu Testzwecken entschlossen, eine alternative Lösung zu erstellen. Aufgrund der neuen Sicherheitseinstellungen in macOS Mojave und der Unfähigkeit von AppleScript, die globalen und persistenten Eigenschaftswerte über Läufe hinweg zuverlässig zu aktualisieren und beizubehalten, halte ich diese alternative Lösung für viel zuverlässiger.

Step 1: Speichern Sie auf dem Remotecomputer in Script Editor.app diesen AppleScript-Code als .scpt-Datei und nennen Sie ihn "Get Current External IP.scpt"

B Stellen Sie sicher, dass Sie den Wert der Eigenschaft in Empfänger in Ihre E-Mail-Adresse

ändern
  -Eigenschaft ipAddress: "1.1.1.1" - Nicht erforderlich zum Festlegen
Eigenschaft toRecipient: "YourEmail@gmail.com" - E-Mail zum Abrufen der IP hat Nachrichten geändert

set emailIsRunning auf Anwendung "Mail" wird ausgeführt - Überprüft, ob Mail ausgeführt wird

Versuchen
    setze lastLoggedIP auf readFile ()
    Stellen Sie das IP ein, um das Shell-Skript "curl ifconfig.co" auszuführen.
    Wenn theIP nicht gleich lastLoggedIP ist, dann
        sendNewEmail ()
        writeToTheFile ()
    ende wenn
bei Fehler errMsg Nummer errNum
    Wenn errNum -43 ist, dann - Der Fehler, wenn die Datei für readFile () noch nicht vorhanden ist
        Stellen Sie das IP ein, um das Shell-Skript "curl ifconfig.co" auszuführen.
        Wenn theIP nicht gleich ipAddress ist, dann
            sendNewEmail ()
            writeToTheFile () - Erstellt die Datei "/ private / tmp / IP Logger.txt"
        ende wenn
    sonst
        aktivieren Sie
        Anzeigedialog "Ein Fehler ist aufgetreten:" & return & errMsg & "" & errNum gibt nach 10 auf
    ende wenn
Ende versuchen

Verzögerung 20 - Ermöglicht das Abschließen eingehender oder ausgehender E-Mail-Nachrichten
Wenn nicht emailIsRunning, beenden Sie die Anwendung "Mail" - Beendet Mail, wenn sie noch nicht ausgeführt wurde

to sendNewEmail () - Sendet neue E-Mails, wenn sich die IP ändert
    Stellen Sie das IP ein, um das Shell-Skript "curl ifconfig.co" auszuführen.
    Anwendung "Mail" mitteilen
        Setzen Sie newEmail auf (neue ausgehende Nachricht erstellen)
Setzen Sie den Inhalt von newEmail auf theIP
        Setzen Sie den Betreff von newEmail auf "IP-Adresse hat sich geändert".
        Erzählen Sie newEmail
            Neu machen für Empfänger mit Eigenschaften {Adresse: toRecipient}
            senden
        Ende erzählen
    Ende erzählen
    setze ipAddress auf theIP
Beenden Sie sendNewEmail

on readFile () - Liest IP Logger.txt, um nach IP-Änderungen zu suchen
    Setzen Sie die Datei1 auf den Alias ​​"privat: tmp: IP Logger.txt".
    Setzen Sie lastLoggedIP auf das letzte Element von (lesen Sie die Datei1 als Text mit dem Trennzeichen-Zeilenvorschub).
end readFile

on writeToTheFile () - Protokolliert jede IP-Änderung in Datei
    Stellen Sie das IP ein, um das Shell-Skript "curl ifconfig.co" auszuführen.
    Setzen Sie die Datei auf "/ private / tmp / IP Logger.txt".
    Setzen Sie den Text auf theIP
    Versuchen
        Setzen Sie writeToFile so, dass es für den Zugriff auf die Datei mit Schreibberechtigung geöffnet wird
        Schreiben Sie den Zeilenvorschub Text & in writeToFile als Text ab eof
        Schließen Sie den Zugriff auf die Datei
    bei Fehler errMsg Nummer errNum
        Schließen Sie den Zugriff auf die Datei
        Setzen Sie writeToFile so, dass es für den Zugriff auf die Datei mit Schreibberechtigung geöffnet wird
        Schreiben Sie den Zeilenvorschub Text & in writeToFile als Text ab eof
        Schließen Sie den Zugriff auf die Datei
    Ende versuchen
ende writeToTheFile
 

Step 2: Speichern Sie auf dem Remotecomputer in Script Editor.app den folgenden AppleScript-Code als Anwendungsdatei "Offen bleiben". Ich habe es "IP Changed Email Notify.app" genannt.

Wenn Sie in Schritt 1 "Get Current External IP.scpt" nicht in Ihrem Dokumentenordner von oben gespeichert haben, müssen Sie den Speicherort in der Eigenschaft " currentExternalIP in dem folgenden Code festlegen.

  -Eigenschaft currentExternalIP: alias ((Pfad zum Dokumentenordner als Text) & "Get Current External IP.scpt")

Führen Sie das Skript currentExternalIP aus

im Leerlauf
    Führen Sie das Skript currentExternalIP aus
    Rückkehr (15 * Minuten)
Ende im Leerlauf
 

Wenn Sie die neue AppleScript-App (IP Changed Email Notify.app) zum ersten Mal von außerhalb von Script Editor.app ausführen, wird der folgende Dialog angezeigt ...

enter image description here

Klicken Sie einfach auf "OK" und da die gesamte Arbeit tatsächlich von "Get Current External IP.scpt" ausgeführt wird, sollten keine zukünftigen Dialoge oder Warnungen mehr bearbeitet werden.

Step 3: (OPTIONAL) Fügen Sie auf dem Remotecomputer diese neu erstellte AppleScript-Anwendung (IP Changed Email Notify.app) zu Ihren "Anmeldeelementen" im Bereich "Systemeinstellungen für Benutzer und Gruppen" hinzu.Jedes Mal, wenn der Computer neu gestartet wird, wird IP Changed Email Notify.app automatisch ausgeführt und jedes Mal, wenn sich die externe IP-Adresse dieses Computers ändert, erhalten Sie eine E-Mail-Benachrichtigung.

Das ist +1 cool ... Ich hätte die Nachrichten-App verwendet, aber E-Mail funktioniert.Ein paar andere Empfehlungen :) 1. Veröffentlichen Sie dies als [Inhalt auf GitHub] (https://gist.github.com/) und 2. verwenden Sie die [richtige Grafik für Ihr Handle `wch1zpink`] (https: //en.wikipedia.org/wiki/Wish_You_Were_Here_(Pink_Floyd_album)).Abschließend entschuldigen wir uns dafür, dass wir nicht zum Thema gehören, konnten aber nicht widerstehen: P.
@Seamus, In Bezug auf Ihren Kommentar "2. Verwenden Sie die richtige Grafik für Ihren Griff wch1zpink" haben Sie fälschlicherweise angenommen, dass das Bild von wch1zpink etwas mit Pink Floyd zu tun hat.Es tut nicht!
@user3439894: :) Es tut mir leid und ich entschuldige mich bei wch1zpink.Gute Laune war wirklich meine Absicht.
@Seamus, Ich hoffe, dass einige Kommentare an Mark und mich in den letzten Tagen nicht absichtlich herablassend waren, da ich sie so sehe.
Alles in diesem Kommentarthread - Ich habe Dinge bearbeitet und möchte alle daran erinnern, niemanden zu bedrohen, wenn Moderation erforderlich ist, und den Humor klar auf sich selbst zu richten, wenn jemand glauben könnte, dass Sie sich über sie lustig machen oder sich über sie lustig machen.https://apple.stackexchange.com/conduct - Ich bin im [Chat], wenn Leute Fragen haben oder nicht klar sind, was ich hier frage.
@user3439894 Ich wollte Sie nicht herausgreifen - Wörter wie "oder es wird Konsequenzen geben" sind bedrohlich und werden entfernt, wenn wir sie sehen oder sie als unfreundlich gekennzeichnet werden.
@wch1zpink, Was ist der Zweck dieser Codezeile, die IP so einzustellen, dass das Shell-Skript "curl ifconfig.co" zweimal ausgeführt wird?Der innerhalb des "on idle" -Blocks macht Sinn;Es ist jedoch nicht klar, warum es auch außerhalb des "on idle" -Blocks benötigt wird.
Lassen Sie mich zunächst sagen ... Ich habe Pink Floyd 19 Mal im Konzert gesehen, Roger Waters 11 Mal im Konzert, David Gilmour 2 Mal im Konzert.Außerdem habe ich mit Ausnahme von ungefähr 13 verschiedenen Daten verlustfreie Audiodaten von jedem Konzert, das jemals von Pink Floyd aufgeführt wurde.Auch um die Frage "Which One's Pink" anzusprechen ... Meine Antwort wird immer Roger Waters sein.Auch Kommentare zu meinem Griff haben mich nicht beleidigt.Ich habe es sofort als sehr lustig angesehen.
@user3439894 Da "on run" und "on idle" zwei separate Ereignisse sind, dachte ich, dass die Verwendung von "set theIP to do Shell-Skript" curl ifconfig.co "an beiden Stellen keinen Schaden anrichten würde.Dadurch wird sichergestellt, dass beim Starten des Skripts sofort die aktuelle IP-Adresse abgerufen wird.
@wch1zpink, Da Ihre Antwort derzeit codiert ist, ist das Ausführen von `set theIP to do Shell-Skript" curl ifconfig.co "außerhalb von` on idle` _handler_ ein verschwendeter _call_ und ** tut absolut nichts für die tatsächliche Funktionalität des Skripts **!Insbesondere angesichts der Tatsache, dass der Wert, den die "theIP" -Variable beim ersten Ausführen enthält, niemals gegen irgendetwas validiert wird, da nichts anderes passiert, bis der "on idle" -Handler ausgelöst wird, bei dem das erste, was er tut, das "make" istGleicher Anruf, bevor eine Validierung erfolgt!Ja, es kann nichts schaden, aber es ist völlig unnötig!
jpa
2019-05-19 12:05:30 UTC
view on stackexchange narkive permalink

Der Bildschirmfreigabedienst verwendet den TCP-Port 5900. Wenn Sie dies so arrangiert haben, dass Sie eine Verbindung herstellen können, wenn Sie nur die IP kennen, sollte dieser Port von außen als offen angezeigt werden.

Wenn Sie nun wissen, welche dynamische IP-Adresse vor der Änderung vorhanden war, können Sie in der WHOIS-Datenbank den gesamten IP-Bereich anzeigen, zu dem die Adresse gehört. Die Chancen stehen gut, dass die neue IP dazu gehörtDies hängt jedoch vollständig davon ab, wie Ihr ISP die Adressen zuweist.

Danach können Sie das gesamte Subnetz mit z.nmap, auf der Suche nach offenem Port 5900. Bevor Sie dies tun, überprüfen Sie die Rechtmäßigkeit des Port-Scannens in dem Land, in dem Sie sich gerade befinden. In einigen Ländern ist das Scannen ohne kriminelle Absicht legal, in anderen Ländern ist das Scannen von Ports möglicherweise immer illegal.

Lieben Sie Ihren Out-of-the-Box-Ansatz.Wie kommt es, dass Sie die rechtlichen Auswirkungen hier verstehen?Was ist Ihre Domain?
@Birowsky Das Scannen von Ports ist nicht so selten, wenn Sie alle möglichen technischen Probleme beheben oder versuchen, Geräte im lokalen Netzwerk zu finden.Es ist allgemein bekannt, die Grenzen zu kennen, was man tun darf und was nicht, genau wie beim Öffnen von Schlössern oder beim Schnüffeln von WLAN.
Nimesh Neema
2019-05-18 18:58:51 UTC
view on stackexchange narkive permalink

Wenn die Person auf dem anderen Mac mit ihrer Apple ID angemeldet ist, können Sie einfach eine iMessage-Sitzung starten, auf die Schaltfläche Details klicken und auf das Symbol für die Bildschirmfreigabe klicken, um eine Bildschirmfreigabesitzung zu starten.

enter image description here

Sie können beide bitten, ihren Bildschirm freizugeben, oder sie einladen, Ihren Bildschirm freizugeben.Dieser Ansatz funktioniert scheinbar ohne eine explizite IP-Adresse.

Sie benötigen jedoch jemanden, der physisch in der Nähe des Computers anwesend ist, um die Anforderung zur Bildschirmfreigabe zu genehmigen.

Ich bin der einzige mit einem Konto auf diesem Remotecomputer: /
@Birowsky Befindet sich der Computer im selben lokalen Netzwerk wie Ihr aktueller Computer?
Nee.Anderes Land.
@Birowsky Sie benötigen jemanden, der physisch anwesend ist, um den Fernzugriff (einmal) einzurichten, bevor Sie remote auf Ihren Computer zugreifen können.Dies kann mit einer Vielzahl von RAS-Tools erfolgen.
TJ Luoma
2019-05-18 18:54:02 UTC
view on stackexchange narkive permalink

Wahrscheinlich nicht, insbesondere wenn sich der Mac hinter einem Router befindet, von dem die meisten eingehende Verbindungen blockieren.

In Zukunft würde ich empfehlen, so etwas wie Bildschirme oder Jump Desktop zu verwenden, die beide Begleit-Apps haben, die die verschiedenen Verbindungsprobleme umgehen und es Ihnen ermöglichen, eine Verbindung herzustellenremote, ohne die IP-Adresse kennen zu müssen.

Wenn ich die öffentliche IP kenne, kann ich eine Verbindung zum Mac herstellen.Leider bietet der ISP nur dynamische IPs an, daher hat sich dies vermutlich kürzlich geändert.Ändert das Wissen, dass der Router richtig konfiguriert ist, etwas?(Danke für die Vorschläge)
"Wenn Sie die öffentliche IP kennen" ist in der Tat der ganze Trick.Aber wenn Sie nicht im Voraus etwas eingerichtet haben, ist es nicht praktisch, die IP jetzt herauszufinden, unabhängig davon, wie der Router eingerichtet ist.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...