"öffentliche" IP eines Heimnetzrechners per VB.NET ermitteln

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    "öffentliche" IP eines Heimnetzrechners per VB.NET ermitteln

    Hi Leute,

    Ich möchte - wie vielleicht der Titel schon sagt - per VB.NET die "öffentliche" IP-Adresse eines anderen Heimnetzrechners ermitteln, d.h.:
    Ich möchte die IP ermitteln, die 'whatismyip.com' bei einem anderem Rechner in meinem Netzwerk anzeigen würde.
    ich stelle mit das in einer Form vor:
    1) man gibt in einer TextBox die "Heimnetz-IP" des Rechners ein, z.B.: 192.168.178.32 ein
    2) nach einem Button-Click spuckt das Programm die "öffentliche" IP des Rechners aus

    Ich hoffe ihr wisst, was ich meine ;) ,
    Wincrash

    PS: Sry, dass ich mich so blöd ausdrücke, aber ich bin im Bereich Netzwerkprogrammierung mit VB.NET noch ein Anfänger :/
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.
    Hey,

    die öffentliche IP eines anderen Rechners im Heimnetz ist doch die selbe wie die Deines Rechners. Also in der Regel. Ich geh davon aus, dass alle Rechner über einen Router auf das Internet zugreifen, oder? Also musst Du nur die öffentliche IP Deines Rechners ermitteln.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    hi SpacyX, ich glaube ich meine was anderes;

    wenn ich auf netzwerkumgebung klicke, so sehe ich nur als IP von einem anderem Rechner "192.168.178.32", weil des die 'interne' IP ist
    wenn aber dieser rechner auf 'whatismyip.com' klickt, so sieht er doch "87.177.140.73" als IP, weil das die 'externe' IP ist

    ich möchte mit vb.net mithilfe der 'interne' IP die 'externe' IP herausfinden.

    und soweit ich weiß, ist die 'externe' IP bei jedem grät unterschiedlich, auch wenn man über den selben router ins netz geht - oder nicht ?(

    vielen dank,
    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.
    Ich gehe mal davon aus, dass es sich bei dir um einen Privatanschluss handelt und nicht um einen Firmenanschluss mit einem festen Adressbereich.
    In dem Fall bekommst du von deinem Provider eine einzige IP-Adresse (und die wechselt noch von Zeit zu Zeit).

    Diese Adresse teilen sich alle Teilnehmer im internen Netz.
    Den Weg nach draußen finden alle mit Hilfe des Routers (Gateway).

    Falls du unterschiedliche interne Rechner von außen ansprechen willst, geht das nur über die eine zugeteilte Adresse und unterschiedlichen Ports.
    Dazu muss im Router entsprechendes Port-Forwarding konfiguriert sein.

    Außerdem musst du einen DynDNS-Eintrag verwenden, damit dein Heimnetz auch nach Adressänderung erreichbar ist.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Auch wenn das erledigt ist, hier kann man Sie schön leicht rauslesen:
    checkip.dyndns.com/

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Nikx schrieb:

    Auch wenn das erledigt ist, hier kann man Sie schön leicht rauslesen:
    checkip.dyndns.com/


    Ich hab mal einen Code gemacht der die IP dann ausliest:

    VB.NET-Quellcode

    1. Public Function GetIP() As String
    2. File.Delete("C:\Temp.txt")
    3. My.Computer.Network.DownloadFile("http://checkip.dyndns.com/", "C:\Temp.txt")
    4. Dim hbkj As StreamReader
    5. hbkj = New StreamReader("C:\Temp.txt")
    6. Return hbkj.ReadToEnd.Replace("<html><head><title>Current IP Check</title></head><body>Current IP Address: ", "").Replace("</body></html>", "")
    7. End Function


    Grüße,

    Mircosofter2206
    @Mircosofter2206 var ip = new Regex(@"([0-9]{2,3}\.?){4}").Match(new WebClient ().DownloadString ("http://checkip.dyndns.com/")).Value

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

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

    @Mircosofter2206 Es ging mir nicht nur darum - du musst die Datei nicht runterladen und auslesen, du kannst den String direkt holen. Ich hab aber das HTML nicht beachtet, darum oben noch mal ne relativ schöne Methode.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    @Mircosofter2206 "Sonntag, 21. Oktober 2012" - Das nächste Mal bitte auf das Datum achten, da der TE sich wahrscheinlich nicht mehr dafür interessieren wird und das Ganze ja schon gelöst war.

    Thema geschlossen. ~Trade

    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: