Die eigene IP herausfinden

  • VB

  • oma-magda
  • 5407 Aufrufe 13 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Die eigene IP herausfinden

    Ich habe folgendes Problem:
    Mein Rechner ist in einem Netzwerk untergebracht und soll seine eigene IP an einen Server senden (der außerhalb des Netzwerkes ist). Wenn ich jetzt aber die IP per
    IP = winsock.localIP
    ermittle, erhalte ich die interne IP, nicht die wirkliche, mit der mein PC angesprochen werden kann. Wie kann man die reale IP herausfinden (im Programm, nich sowas wie gehe auf folgende website).

    Danke schonmal im Vorraus.
    oma-magda
    Wissen ist Macht - Nichts wissen macht auch nichts.
  • Moin,

    ganz einfach!
    Einfach auf Ausführen ->cmd -> dann ipconfig /all eingeben
    und schon wir dir alles aufgelistet was du brauchst!!

    Wenn du kontrollieren willst ob dein PC sendet einfach ping deine IP z.B. 192.168.0.0 -> ping 192.168.0.0

    MfG.:

    gangstarr2088
  • Nunja... da kommt leider wieder nur die interne IP raus (die selbe die Winsock anzeigt). Ich habe meine (wirkliche) IP mal von außen herasgesucht, war eine völlig andere. Trotzdem danke für die Antwort.

    PS: Das ganze soll möglichst in Visual Basic aufgerufen werden (KEINE Befehlszeile)
    Wissen ist Macht - Nichts wissen macht auch nichts.
  • Diese Seite kenne ich schon ;)
    Wichtig wäre mir aber, die IP in mein Programm zu bekommen. Und ich will dem User nich zumuten, jedesmal auf eine Internetseite zu gehen, wenn er mein Programm benutzen möchte. Trotzdem Danke ;)
    Und nochmal: Die IP soll INNERHALB von VB herausgefunden werden, weder in Dos noch sonstwo :D
    Wissen ist Macht - Nichts wissen macht auch nichts.
  • mit dos geht es natürlich auch starte doch mit vb eine bat ,und speichere
    mit der bat dann die ip ab <<
    diese textdatei kannst du dann mit vb auslesen .


    aber ich habe noch einen beispielcode gefunden ich schicke dir den ,per pn
  • Nunja.. die Idee finde ich prinzipiell schonmal gut. Es gibt leider immer noch das Problem, dass jede IP, die der PC selbst ermittelt FALSCH ist.
    Ich habe schon die idee gehabt, über das inet-Steuerelement die Homepage wie-ist-meine-IP.de in eine Variable einzulesen und dann irgendwie die IP rauszufiltern. Wäre das möglich?
    Wissen ist Macht - Nichts wissen macht auch nichts.
  • Ich habs nicht getestet, aber der Threadtitel ist schonmal vielversprechend:
    per VB 6 die öffentliche IP ermitteln

    Kannst ja mal posten obs funktioniert :)

    Gruß,
    Commander Keen
    Ich habe das Wort "Europa" immer im Munde derjenigen Politiker
    gefunden, die von anderen Mächten etwas verlangten, was sie im
    eigenen Namen nicht zu fordern wagten. [SIZE="1"](Nov. 1876)[/SIZE]
    [SIZE="1"]Otto von Bismarck[/SIZE]
  • oma-magda schrieb:

    Nunja.. die Idee finde ich prinzipiell schonmal gut. Es gibt leider immer noch das Problem, dass jede IP, die der PC selbst ermittelt FALSCH ist.


    fals du es mit dem dos auslesen machen willst ,natürlich stimmt die ip warum denn nicht ???
    !! so hatt mann doch früher trojaner gemacht ,in einem vb progamm eine bat versteckt die ip ausgelesen und dann die textdatei per dos ftp verschickt ,alles mit bat dateien geht glaub heute sogar noch .


    hier ist mal der tipp als reiner vb code er geht habe es getestet .

    will mich nicht mit falschen federn schmücken der tipp ist von
    hxxp://www.chlhp.de


    Quellcode

    1. Option Explicit
    2. 'IP-Adressen ermitteln
    3. Private Declare Function GetAdaptersInfo Lib "iphlpapi.dll" (pTcpTable As Any, pdwSize As Long) As Long
    4. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal dwLength As Long)
    5. Private Const MAX_ADAPTER_NAME_LENGTH As Long = 256
    6. Private Const MAX_ADAPTER_DESCRIPTION_LENGTH As Long = 128
    7. Private Const MAX_ADAPTER_ADDRESS_LENGTH As Long = 8
    8. Private Type IP_ADDRESS_STRING
    9. ipAddr(0 To 15) As Byte
    10. End Type
    11. Private Type IP_MASK_STRING
    12. IpMask(0 To 15) As Byte
    13. End Type
    14. Private Type IP_ADDR_STRING
    15. dwNext As Long
    16. ipaddress As IP_ADDRESS_STRING
    17. IpMask As IP_MASK_STRING
    18. dwContext As Long
    19. End Type
    20. Private Type IP_ADAPTER_INFO
    21. dwNext As Long
    22. ComboIndex As Long
    23. sAdapterName(0 To (MAX_ADAPTER_NAME_LENGTH + 3)) As Byte
    24. sDescription(0 To (MAX_ADAPTER_DESCRIPTION_LENGTH + 3)) As Byte
    25. dwAddressLength As Long
    26. sIPAddress(0 To (MAX_ADAPTER_ADDRESS_LENGTH - 1)) As Byte
    27. dwIndex As Long
    28. uType As Long
    29. uDhcpEnabled As Long
    30. CurrentIpAddress As Long
    31. IpAddressList As IP_ADDR_STRING
    32. GatewayList As IP_ADDR_STRING
    33. DhcpServer As IP_ADDR_STRING
    34. bHaveWins As Long
    35. PrimaryWinsServer As IP_ADDR_STRING
    36. SecondaryWinsServer As IP_ADDR_STRING
    37. LeaseObtained As Long
    38. LeaseExpires As Long
    39. End Type
    40. Private Function LocalIPAddresses() As String
    41. On Error Resume Next
    42. 'für API-Aufrufe
    43. Dim cbRequired As Long
    44. Dim buff() As Byte
    45. Dim Adapter As IP_ADAPTER_INFO
    46. Dim AdapterStr As IP_ADDR_STRING
    47. 'allgemeine Variablen
    48. Dim ptr1 As Long
    49. Dim sIPAddr As String
    50. Dim sAllAddr As String
    51. Call GetAdaptersInfo(ByVal 0&, cbRequired)
    52. If cbRequired > 0 Then
    53. ReDim buff(0 To cbRequired - 1) As Byte
    54. If GetAdaptersInfo(buff(0), cbRequired) = 0 Then
    55. 'Zeiger (Pointer) zu den gespeicherten Daten (buff) ermitteln
    56. ptr1 = VarPtr(buff(0))
    57. 'ptr1 ist 0 wenn keine weiteren Adapter vorhanden sind
    58. Do While (ptr1 <> 0)
    59. 'aktuellen Zeiger auf Datenstrucktur (Adapter) zuweisen
    60. CopyMemory Adapter, ByVal ptr1, LenB(Adapter)
    61. With Adapter
    62. 'IP-Adresse des adapters auslesen
    63. sIPAddr = TrimNull(StrConv(.IpAddressList.ipaddress.ipAddr, vbUnicode))
    64. 'und Name des Adapters durch das Ascii-Zeichen 1 getrennt, anfügen
    65. sAllAddr = sAllAddr & sIPAddr & Chr(1) & TrimNull(StrConv(.sDescription, vbUnicode)) & vbCrLf
    66. 'Poiner auf nächsten Adapter setzen
    67. ptr1 = .dwNext
    68. End With
    69. Loop
    70. End If
    71. End If
    72. 'letzes vbcrlf entfernen, wenn Adapter gefunden wurden
    73. If Len(sAllAddr) > 0 Then sAllAddr = Left(sAllAddr, Len(sAllAddr) - 2)
    74. 'und Liste der Adapter mit ihren IP-Adressen ausgeben
    75. LocalIPAddresses = sAllAddr
    76. End Function
    77. Private Function TrimNull(ByVal str As String) As String
    78. On Error Resume Next
    79. TrimNull = Trim(Left(str, InStr(str, Chr(0)) - 1))
    80. End Function
    81. Private Sub cmdRefresh_Click()
    82. 'IP-Adressen incl. Adapter ermitteln
    83. 'und das Ascii-Zeichen 1 durch das Trennzeichen " / " ersetzen
    84. txtIPs.Text = Replace(LocalIPAddresses, Chr(1), " / ")
    85. End Sub
    86. Private Sub Form_Load()
    87. 'Anzeige aktualisieren
    88. Call cmdRefresh_Click
    89. End Sub
    Alles anzeigen
  • @ Commander Keen
    Danke für den Tip, hilft leider auch nicht.
    @xus77
    Die IP von Dos ist wirklich falsch. In einem Netzwerk bekommt jeder User eine IP vom Router zugewiesen, nach außen hin gibt es aber nur eine IP, nämlich die des Routers(sonst müsstest du für jeden PC im Netzwerk einen eigenen Vertrag haben, pro Vertrag gibt es nämlich immer nur eine IP!).
    Man müsste also eine Anfrage von außen durchführen...
    Desshalb bin ich auf die Seite wie-ist-meine-ip.de gekommen. Die müsste man doch abrufen und auswerten könnten?
    Vorallem Dosftp interressiert mich. Ich habe absolut keine Erfahrung mit batch-dateien. Wie geht das? Mit Dosftp kenne ich mich schon ganz gut aus.
    Auf jeden Fall nochmal ein herzliches Danke für eure Beteiligung.
    Wissen ist Macht - Nichts wissen macht auch nichts.
  • Ich hab hier nochmal was gefunden, vielleicht willst du ja noch einen Versuch starten ;)

    vbarchiv.net/archiv/tipp_details.php?pid=566

    Hoffe es klappt diesmal!

    Gruß,
    Commander Keen
    Ich habe das Wort "Europa" immer im Munde derjenigen Politiker
    gefunden, die von anderen Mächten etwas verlangten, was sie im
    eigenen Namen nicht zu fordern wagten. [SIZE="1"](Nov. 1876)[/SIZE]
    [SIZE="1"]Otto von Bismarck[/SIZE]
  • Commander Keen schrieb:

    Ich hab hier nochmal was gefunden, vielleicht willst du ja noch einen Versuch starten ;)

    vbarchiv.net/archiv/tipp_details.php?pid=566

    Hoffe es klappt diesmal!

    Gruß,
    Commander Keen


    das ist auch nur die router ip geht somit auch nicht .

    Vorallem Dosftp interressiert mich. Ich habe absolut keine Erfahrung mit batch-dateien. Wie geht das? Mit Dosftp kenne ich mich schon ganz gut aus.


    abseichern dann als blabal.bat ist halt dann für ftp port21
    um die bat zu starten speicherst du die am besten auf c ab .


    open xxx.xxx.xxx.xxx
    benutzer
    passwort
    get bla bla
    send bla bal
    bye
    quit