URL Kurz-Links auflösen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    URL Kurz-Links auflösen

    Hi,

    ich möchte ganz gern herausfinden WOHIN mich ein URL Link leiten wird, und zwar BEVOR ich diesen Link anklicke.

    Diese ganze Abkürzerei ist mir ein Buch mit sieben Siegeln ... soweit ich versehe gibt es da BITLY und es gibt im Netz zahlreiche Hinweise wie man eine URL (kostenlos :) ) in einen Bitly-Link umwandeln kann. Weil die damit wohl ordentlich Geld verdienen. Blöderweise klinken sich da nach meiner Einschätzung auch viele Spammer ein, um ihre wirkliche Identität zu verschleiern.

    Umd die Links aufzulösen, kann man irgendwelche Sites aufrufen ... wo man die Kurz-URL eintippen kann und dann (für die meisten Adressen ???) das reale Ziel erhällt. Nicht gerade das was ich mir erträume.

    Ich habe das eigentlich naheliegende Anliegen: wie kann ich in möglichst ALLEN Fällen mit meinem VB Programm herausfinden, wie die REALE URL eines Links lautet. Wenn das System mich dahin routen kann, dann müsste es doch eine Möglichkeit geben, das ohne Kopfstände herauszufinden.

    Ich hoffe, dass ihr wie immer geduldig und nachsichtig mit mir umgeht. Meine Kenntnisse sind halt recht begrenzt.

    LG
    Peter

    *Topic verschoben*

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Peter329“ ()

    Die einzige Möglichkeit wird wohl sein, die URL in deinem Programm aufzurufen und dann eben die Ziel-URL auszulesen, also die URL der Seite, auf die man dann gelangt ist. Das kann natürlich komplett versteckt sein. Anhand der Kurz-URL auf das Ziel schließen, ist meiner Meinung nach unmöglich.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Wie Marcus schon sagt, du wirst nicht so einfach an die Ziel-URL kommen.
    Die meisten solcher Dienste funktionieren aber so, dass die dich weiterleiten.

    Das passiert mittels HTTP und liefert dann immer einen HTTP 1XX oder 3XX zurück (developer.mozilla.org/en-US/do…tus#information_responses).
    Was du natürlich machen kannst, ist in deinem Programm die URL eingeben und dann die HTTP Responses so lange auslesen, bis du dann ein 2XX, 4XX oder 5XX zurückbekommst.

    Dazu kannst du dir das HttpStatusCode-Enum zu einem Integer umwandeln ​Console.WriteLine($"Response code: { (int)myHttpResponseCode }");.

    Ich habe dafür keinen Code, aber da gibt's bestimmt Beispiele im Netz, die das zeigen.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    Wie oben schon beschrieben wurde, geht der Weg über die Response eines HEAD-Requests.
    In einem alten Programm fand ich eine Funktion zur Auflösung der Url.

    VB.NET-Quellcode

    1. Function ExpandUrl(URL As String) As String
    2. If Not URL.StartsWith("http") Then Return ""
    3. Try
    4. Dim WReq = WebRequest.Create(URL)
    5. WReq.Timeout = 5000
    6. WReq.Method = "HEAD"
    7. Dim WResp = WReq.GetResponse
    8. Dim expanded = WResp.ResponseUri.ToString
    9. WResp.Close()
    10. Return expanded
    11. Catch ex As Exception
    12. Return ""
    13. End Try
    14. End Function
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Jau, jetzt sind die Dinge doch sehr viel klarer !

    Ich verstehe, dass die Kurz-URL keine Funktion des Netzwerk ist, sondern, dass es sich um einen Service von externen Providern handelt. Da kann ich lange nach Properties im .NET suchen ... :)

    Die Technik (die wohl auch die diversen Sites im Netz verwenden) ist das Senden der URL und das Auslesen der Response ... das Programm von @petaod hat auf Anhieb funktioniert. Super !

    Ich habe das jetzt mit den mir vorliegenden Kurz-URLs ausgetest und den Code in mein Programm aufgenommen. Mal sehen, ob sich das in der Praxis auch bei anderen Links bewährt.

    Mein Programm kann übrigens auch den Inhalt des HTML Dokuments auslesen und editieren (also ohne Browser) ... das gibt mir die Möglichkeit im Zweifel nachzusehen, was die URL denn treiben möchte ... und bei Bedarf kann ich das ediitierte Dokument in einer Sandbox ausführen, obwohl das natürlich mühsam ist.

    Ich bin vor allem deshalb happy, weil ich jetzt statt des nichtssagenden ".ly" die reale Domäne sehe, also ob eine Seite etwa von der Domäne ".ru" etc. stammt Dann nimmt meine Begeisterung nämlich schlagartig ab, so etwas auszuführen. :)

    Jetzt fühle ich mich doch schon sehr viel wohler. Ihr habt mir wirklich sehr geholfen ... herzlichen Dank an die Ratgeber und Daumen hoch!

    LG
    Peter

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Peter329“ ()