Announcement

Collapse
No announcement yet.

IP,ipscanner und icq

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IP,ipscanner und icq

    Ich habe ein Message Programm für mich und meine Freunde programmiert, dass über internet einfach nur messages verschicken soll.. im netzwerk klappt es hervorragend... aber im internet nicht... ich krieg die Ip adresse des anderen nicht raus... ok, dachte ich mir, bastele ich nenip-scanner ein... das tat ich auch (UDP-Protokoll)... leider dauert das scannen ca 4-5 stunden, wenn ich wirklich alle addressen von 0.0.0.1 bis 255.255.255.255 scannen würde... gibt es eine möglichkeit, mir die ip addresse zuschicken zu lasse oder kann man den ip-bereich irgendwie eingrenzen???
    ein freund meinte, ich könnte mir die ip über icq zuschicken lassen aber den quellcode konnte er mir nicht sagen.....
    schon klar.. wenn ich mir die ip über icq zuschicken lassen will müsste ich einen Client noch miteinbauen und mich mit dem icq-server verbinden... das problem wäre nur.. WIE?? und welche ip hat der icq server und welchen befehl brauche ich zum versenden einer solchen nachricht...
    Wie bekomme ich überhaupt meine eigene ip raus???
    vielleicht könnt ihr mir helfen...
    Tschau
    Jim

  • #2
    Ich habe ein ähnliches Prgramm geschrieben.
    Ich habe das Problem so gelöst:
    Sobald jemand mein Programm startet wird auf meinem Homepage Speicherplatz ein Textfile zuerst gelesen, und dann meine IP-Adresse hinzugefügt und gespeichert. (ftp)
    Somit kann ich immer auslesen welche IP-Adressen mein Programm gestartet haben und zu diesen PC's auch Nachrichten schicken.

    Und die eigene IP-Adresse, bekommst du so heraus:

    <pre>
    function IPAdress;//Funktion zum Auslesen der IPAdresse
    resourcestring
    cTxtIP = '%d.%d.%d.%d';
    var
    rSockVer : WordRec;
    aWSAData : TWSAData;
    szHostName : array[0..255] of Char;
    pHE : PHostEnt;
    sIP : String;
    begin
    // WinSock Version 1.1 initialisieren
    rSockVer.Hi := 1;
    rSockVer.Lo := 1;
    WSAStartup(Word(rSockVer), aWSAData );
    try
    FillChar(szHostName, SizeOf(szHostName), #0);
    GetHostName(szHostName, SizeOf(szHostName));
    pHE := GetHostByName(szHostName);
    if Assigned(pHE)
    then with pHE^ do
    sIP := Format(cTxtIP,
    [Byte(h_addr^[0]), Byte(h_addr^[1]),
    Byte(h_addr^[2]), Byte(h_addr^[3])]);
    finally
    WSACleanup;
    end;
    result:=sIP;
    end;
    </pre>

    mfg Hansjör

    Comment


    • #3
      Danke.. ich hab auch ne andere routine gefunden:<br>
      <i>
      function getIP: String;

      type

      TaPInAddr = Array[0..10] of PInAddr;<br>
      PaPInAddr = ^TaPInAddr;<br>

      var<br>
      phe: PHostEnt;<br>
      pptr: PaPInAddr;<br>
      Buffer: Array[0..63] of Char;<br>
      I: Integer;<br>
      GInitData: TWSAData;<br>
      TempList: TStrings;<br>
      begin<br>
      WSAStartup($101, GInitData);<br>
      TempList := TStringList.Create;<br>

      try<br>
      TempList.Clear;<br>
      GetHostName(Buffer, SizeOf(Buffer));<br>
      phe := GetHostByName(buffer);<br>

      if phe = nil then<br>
      begin<br>
      Exit;<br>
      end;<br>

      pPtr := PaPInAddr(phe^.h_addr_list);<br>
      I := 0;<br>

      while pPtr^[I] <> nil do<br>
      begin<br>
      TempList.Add(inet_ntoa(pptr^[I]^));<br>
      Inc(I);<br>
      end;<br>

      Result := TempList[0];<br>
      //Result := TempList[TempList.Count - 1];<br>

      WSACleanup;<br>

      finally<br>
      TempList.Free;<br>
      end;<br>
      end;<br>
      </i>
      Deine ist aber kürzer...

      Allerdings kann man auch einfach.. vorrausgesetzt, dass man die client-server-version von Delphi hat, die <b>serversocket.socket.localaddress</b> Eigenschaft nehmen...
      Das hab ich mir per e-mail mailen lassen.. da ich Webspace zu umständlich finde... ok... für mail muss man sich mit pop3 und smtp n bischen auskennen... is aber nicht schwer...

      Danke Trotzdem

      C ya

      KoRnfanati

      Comment


      • #4
        @Hansjoerg Haller

        kannst du mir deinen Quelltext schicken (nur für privatgebrauch/ich werds nirgentwo zum download anbiten, etc.)
        bitte (bin totaler noob kann so etwas nich selber machen)
        *[DANKE]*
        kuti

        Comment


        • #5
          hallo,
          <br><br>
          ich habe gehört, dass man mit dem Befehl ipconfig in der dos-eingabeaufforderung die eigene ip-adresse herausfinden kann. allerdings ist das anscheinend nur die ip-adresse von mir bis zum provider. wenn ein freund, der auch im internet ist, auf meinen rechner zugreifen möchte, benötige ich sicher die ip-adresse, die nach dem provider für andere rechner sichtbar ist. ich glaube diese ip-adresse bekommt man mit ipconfig -all. nur weiß ich leider nicht, welche angezeigte ip ich davon meinem freund mitteilen muß damit der auf meinen echner zugreifen kann. Weiß jemand wo cih da nachschauen muss?
          Ich hab einen kleinen Server programmiert, der eingehende meldung über einen bestimmten port in eine mysql schreibt. das möchte ich mit meinem freund mal ausprobieren. nur dazu brauche ich meine eigene ip und zwar die, die mich auch noch nach dem provider eindeutig identifiziert.
          <br><br>
          Gruß,<br>
          Marc

          Comment


          • #6
            hallo,<br>
            <br>
            eins habe ich vergessen zu erwähnen. für verbindung zwischen client und server habe ich die socket-komponente eingesetzt. allerdings weiß ich nicht, ob da überhaupt ne verbindung übers interent zustande kommen kann. müssen client und server sich dafür nicht im gleichen TCP/IP-Subnetz befinden???? Es wäre super, wenn mir schnell geholfen werden könnte. Hab das ganze WE durchprogrammiert und der sonntägige programmtest fiel leider negativ aus. Das Programm müsste eigentich korrekt laufen. nur bekommt mein freund (client) keine verbindung zu meinem Computer (server)

            Comment

            Working...
            X