IP-Packtete verändern



  • Hallo,

    ich habe eine Homepage auf der eine Art Counter ist.
    Dieses System countet nur einmal pro IP-adresse des Seitenbesuchers.
    Nun brauche ich um die funktion zu verarbeiten theoretisch edliche IP-Adrressen. Da ich die nicht habe will ich ein Programm entwickeln, das immer andere IP-Adressen sendet, die ich frei wählen kann.

    Das stell ich mir etwa so vor:

    1. Die verbindung zu der Seite erfolgt mit einen ganz normalen http-abruf.
    2. Nach dem die verbindung hergestellt wurde (TCP-Handshake) will ich die Quell-IP-Adresse der gesendeten TCP-Packete ändern in eine mir beliebige IP

    Meine Frage:
    Ist das möglich die IP-Packete so zu verändern? Würde der "Counter" dies als eine verbindung einer fremden IP-Adresse Werten? (Das keine Daten mehr zu mir zurückgesendet werden ist nich schlimm,... der "Counter" soll nur den Zählvorgang ausführen).



  • MeisterMichi schrieb:

    Nun brauche ich um die funktion zu verarbeiten theoretisch edliche IP-Adrressen.

    Diesen Satz verstehe ich nicht ganz. Was willst du "verarbeiten"?

    IMHO ist es unmöglich, für sowas IP-Adressen zu fälschen (spoofen). Wie du schon richtig beschrieben hast, ist der TCP-Handshake das Problem. Wenn du nach dem Handshake plötzlich mit einer anderen IP sendest, erkennt der Server das als ungültiges Paket und verwirft es, weil zu der gefälschten IP keine Verbindung eingetragen ist. Wie sollte er das Paket denn auch zuordnen?
    Wenn es deine eigene Homepage ist, warum willst du dann überhaupt den Counter auf diese Weise manipulieren?

    p.s.: Bitte achte etwas mehr auf deine Rechtschreibung.
    p.p.s.: Falsches Forum, hier geht es um Standard-C++, das kennt keine TCP-Pakete.



  • MeisterMichi schrieb:

    Dieses System countet nur einmal pro IP-adresse des Seitenbesuchers.
    Nun brauche ich um die funktion zu verarbeiten theoretisch edliche IP-Adrressen. Da ich die nicht habe will ich ein Programm entwickeln, das immer andere IP-Adressen sendet, die ich frei wählen kann.

    wie unterscheidet er die ip-adressen? anhand des tcp-headers oder anhand des host-wertes in der http-request?
    im ersteren falle (umwarscheinlich) benutze einfach fremde http-proxies.
    im letzeren falle schreibe dir einfach einen http-requester in c++.



  • MeisterMichi schrieb:

    Hallo,

    ich habe eine Homepage auf der eine Art Counter ist.
    Dieses System countet nur einmal pro IP-adresse des Seitenbesuchers.
    Nun brauche ich um die funktion zu verarbeiten theoretisch edliche IP-Adrressen. Da ich die nicht habe will ich ein Programm entwickeln, das immer andere IP-Adressen sendet, die ich frei wählen kann.

    Das stell ich mir etwa so vor:

    1. Die verbindung zu der Seite erfolgt mit einen ganz normalen http-abruf.
    2. Nach dem die verbindung hergestellt wurde (TCP-Handshake) will ich die Quell-IP-Adresse der gesendeten TCP-Packete ändern in eine mir beliebige IP

    Meine Frage:
    Ist das möglich die IP-Packete so zu verändern? Würde der "Counter" dies als eine verbindung einer fremden IP-Adresse Werten? (Das keine Daten mehr zu mir zurückgesendet werden ist nich schlimm,... der "Counter" soll nur den Zählvorgang ausführen).

    Es ist moeglich, die IP-Adresse zu spoofen. Ob der Counter das zaelt, kommt
    darauf an, wie der Counter programmiert ist. Prueft er die Gegenseite, koennte
    es sein, dass er die Verbindung nicht zaehlt, wenn die IP-Adresse, geprueft
    durch ein ping-echo, nicht im Internet erreichbar ist.

    Es kommt also darauf an, wie der Counter reagiert.

    mfg
    v R



  • Dieser Thread wurde von Moderator/in Gerard aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,

    Ich versteh nicht ganz wofür du soooooo viele IP-Addressen brauchst. Du willst testen ob dein counter funktioniert richtig ? Tjo dann reichen doch 10 versuche oder nicht ?

    Du könntest auch einfach ne Testfunktion in dein Program einbauen der du ein Packet übergibst. Nur dass das Packet eben nich vom Netz kommt sondern vom Program selbst. Der Rest bleibt gleich. Oder du benutzt eben, wie vorgeschlagen, proxies oder probierst es mit non-blind-spoofing, dafür müsstest du dich allerdings im selben Segment befinden und etwas mehr über tcp/ip wissen, insbesondere über sequenznummern. Wie auch immer. Wenn du nicht weisst wie man die IP addresse in nem Packet ändert: Caste den ipheader drauf und änder sie source addresse..... google hilft dir weiter. Ein blick in die libnet macht einiges klarer.



  • Bau einfach eine Routine die wahllos IP Adressen generiert (so 10 Stück) und immer zufällig eine auswählt und deinem Counter diese gibt beim aufruf und dann siehste ja ob er richtig arbeitet.
    ich würde das Kernstück einfach in ne Funktion stecken, den generator basteln und den Counter aufzeichnen lassen welche IP er gerade bekommen hat, ob sie bereits da ist, wie oft sie schon auf der Seite war und das ganze in ne Textdatei/auf die Konsole ausgeben. Dann siehste ja ob das ganze funktioniert.

    Abgesehen davon, reicht eigentlich eine IP, geh mit der auf die Seite und lade diese einfach neu, wenn der Counter nicht hoch zählt geht es ja und dann kannste ja schnell neu einwählen und wieder drauf gehen, wenn dann der Counter auf 2 geht, passt es ja auch.


Anmelden zum Antworten