[C++]Tutorial IP Changer[Anfänger]

12/31/2011 11:49 lujaluja#1
IP Changer Tutorial

Was benötige ich?

- Visual C++ bzw. einen C++ Compiler

Was ist ein IP Changer?

Ein Ip Changer ändert die IP. IP ist die Kurtzform für Internet Protocol.
Es gibt zwei IP Arten: IPv4 und IPv6. Mit diesem IP Changer werden beide verändert.

Tutorial:

Zu aller erst erstelllen wir ein neues Projekt, dazu klickt ihr auf Datei->Neu->Projekt
[Only registered and activated users can see links. Click Here To Register...]
An der Seite stehen in der Regel 3 Vorlagen, ihr klickt auf "Win32" und dann auf "Win32-Konsolenanwendung". Jetzt Tippt ihr einen Namen ein und klickt auf OK.
[Only registered and activated users can see links. Click Here To Register...]
In dem Fenster, welches danach erscheint müsst ihr in der Regel nur auf Fertig stellen klicken, denn es ist, wenn ihr auf weiter klickt, "Konsolenanwendung" und "Vorkompilmierter Header" selektiert.
Falls nicht: ändern. :D

Ihr kommt danach in eine Textbox also ein Text eingabefeld, in dem dieser Code stehen sollte:

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}


Jetzt Includieren wir <iostream> und <windows.h>, d.h. wir schreiben oben nach dem #include "stdafx.h", #include <iostream> und #include <windows.h>.

Vor dem return 0; macht ihr 1nen oder 2 Absätze und schreibt: std::cout << "IP Changer Enabled";

Jetzt könnten wir Sofort den IP Change machen, oder noch etwas mehr hinzufügen, wer jetzt nur den IP Change machen will, der macht jetzt einfach weiter, wer noch extras hinzufügen will geht zum 2. |||||||.

|||||||

Jetzt schreibt ihr unter das std::cout << ...; einfach system("ipconfig/renew"); und Debuggt das Projekt auf diesem Pfeil oben:
[Only registered and activated users can see links. Click Here To Register...]

Jetzt sollte alles einwandfrei funktionieren.

KomplettCode:
Quote:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "IP Changer Enabled"
System("ipconfig/renew");
return 0;
}
|||||||

Bei dem ersten std::cout schreiben anstatt "IP Changer Enabled", "Press a key to change IP"
Jetzt kommt eine Funktion die einen Tastendruck Abwartet, die getchar funktion, d.h. wir schreiben nach dem cout in eine neue Reihe: getchar();
Jetzt kommt die Funktion mit der wir unsere IP ändern, sie heißt: system("ipconfig/renew");
Jetzt kommt noch eine Schleife, mit der wir die Funktion unendlich oft durchlaufen können.
ihr schreibt unter system("ipconfig/renew");
while (i = 1){ }, da der Compiler "i" noch nicht kennt müssen wir es erst definieren, das geht über eine Integer Variable sie speichert Zahlen ab. Ihr schreibt oben unter die Includes: int i = 1;
Jetzt kommt in unsere geschweiften Klammern also in die while Funktion unser Code der ausgeführt werden soll, er ist genauso wie der Code am Anfang, also:
std::cout << "Press a key to Change IP again";
getchar();
system("ipconfig/renew");
Wie ihr vieleicht gemerkt habt ist beim cout jetzt ein anderer Text, den könnt ihr ändern oder auch so lassen. Jetzt hab ihr eine endlos Schleife.

Nun debuggt ihr das Projekt auf diesem Pfeil oben:
[Only registered and activated users can see links. Click Here To Register...]

Hier ist der KomplettCode:
Quote:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>

int i = 1;

int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "Press a key to Change IP";
getchar();
System("ipconfig/renew");

while (i = 1)
{
std::cout << "Press a key to Change IP again";
getchar()
System("ipconfig/renew");
}
return 0;
}
Info:
Ich hab einen Fehler im KomplettCode eingebaut, er soll C&P verhindern.
Wer das Tutorial klauen will kann das gerne machen, dies ist das Original.
12/31/2011 12:21 yihaaa#2
Wie funktioniert der Ip Change den jetz?

MfG
12/31/2011 13:24 jacky919#3
Warum deklarierst du oben "i"?
Nur um eine Endlosschleife zuhaben?
Kannst du auch gleich
Code:
while(1) {}
oder
Code:
for(;;) {}
nehmen...

Warum steht vor der Schleife
Code:
std::cout << "Press a key to Change IP";
getchar();
System("ipconfig/renew");
und in der Schleife dasselbe? Kannst doch gleich in die Schleife gehen...
12/31/2011 13:39 MoepMeep#4
Quote:
Originally Posted by jacky919 View Post
Warum deklarierst du oben "i"?
Nur um eine Endlosschleife zuhaben?
Kannst du auch gleich
Code:
while(1) {}
oder
Code:
for(;;) {}
nehmen...

Warum steht vor der Schleife
Code:
std::cout << "Press a key to Change IP";
getchar();
System("ipconfig/renew");
und in der Schleife dasselbe? Kannst doch gleich in die Schleife gehen...
Halt eine weitere Pfeife die keine Ahnung hat und sein zusammenkopiertes Zeug als Tutorial ausgibt.
12/31/2011 15:11 Che#5
Alternativ könnte man auch einfach CMD öffnen und "ipconfig /renew" eingeben, wobei das aber nicht viel bringt. Bei meinem Speedport änder ich die IP, wenn ich zu "http://speedport.ip/cgi-bin/disconnect.exe" navigier und dann kurz warte, "ipconfig /release" bzw "ipconfig /renew" bringt hier garnichts.
Nebenbei ist der Source extrem umständlich und so absoluter Quatsch.

Code:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
while (1)
{
std::cout << ((i == 0)?"Press a key to Change IP":"Press a key to Change IP again");
getchar();
system("ipconfig/renew");
i++;
}
return 0;
}
Ist das selbe...

Bitte verwende in Zukunft für Snippets Codeboxen! ([ code]snippet[/code] ohne das Leerzeichen...)
12/31/2011 16:59 jacky919#6
Das hier ändert schon deine IP. Es ändert aber nur deine lokale IP Addresse in deinem Netzwerk, wobei es auch nur funktioniert wenn der Router als DHCP Server eingestellt ist.
12/31/2011 18:37 .SkyneT.#7
Code:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>

int i = 1;   

int _tmain(int argc, _TCHAR* argv[])
{

std::cout << "Press a key to Change IP";
getchar();
system("ipconfig/renew");


while (i = 1)  
{
std::cout << "Press a key to Change IP again";
getchar();
system("ipconfig/renew");
}
return 0;
}
Code:
int i = 1;   
while (i=1){
}
Nein... NEIN ...


Code:
int _tmain(int argc, _TCHAR* argv[])
{
for(;;){
    std::cout << "Press a key to Change IP";

    getchar();

    system("ipconfig/renew");
    system("cls");
}

    return 0;
}
..Wäre wesentlich kürzer und "sauberer".

Nimm es als konstruktive Kritik :rolleyes:

@Che
C++ ist Case Sensitive. "System" gibt es nicht, sondern nur "system".

MfG
12/31/2011 18:44 MoepMeep#8
Quote:
Originally Posted by .SkyneT. View Post


Code:
int _tmain(int argc, _TCHAR* argv[])
{
A:
    std::cout << "Press a key to Change IP";

    getchar();

    system("ipconfig/renew");
    system("cls");
    goto A;

    return 0;
}
..Wäre wesentlich kürzer und "sauberer".

Nimm es als konstruktive Kritik :rolleyes:
[Only registered and activated users can see links. Click Here To Register...]

Und nun geh woanders rumfailen, k?
12/31/2011 18:53 .SkyneT.#9
Quote:
Originally Posted by MoepMeep View Post
[Only registered and activated users can see links. Click Here To Register...]

Und nun geh woanders rumfailen, k?
Ah und du bist der größte hier im Forum oder?
Sicher, goto ist mehr oder weniger ein mittelalterlicher Befehl und bei großen Projekten ungeeignet, aber war nur ne Alternative ...
(Außerdem hab ich nie ne schlechte Erfahrung damit gemacht.)

k ?
12/31/2011 18:56 MoepMeep#10
Quote:
Originally Posted by .SkyneT. View Post
Ah und du bist der größte hier im Forum oder?
Sicher, goto ist mehr oder weniger ein mittelalterlicher Befehl, aber war nur
ne Alternative ...
(Außerdem hab ich nie ne schlechte Erfahrung damit gemacht.)

k ?
goto ist KEINE Alternative, hör auf hier so einen Scheiß zu labern. Wenn du Privat einen verdammt schlechten Stil hast ist das deine Sache, aber versau hier nicht den Stil von anderen.
12/31/2011 19:01 .SkyneT.#11
Quote:
Originally Posted by MoepMeep View Post
goto ist KEINE Alternative, hör auf hier so einen Scheiß zu labern. Wenn du Privat einen verdammt schlechten Stil hast ist das deine Sache, aber versau hier nicht den Stil von anderen.
Ah ok dann lass ich ab jetzt alle in dem Stil Programmieren:
Goto ist nicht mehr als ein Sprungbefehl...

Und entschuldige doch das ich in der kurzen Zeit wo ich den Beitrag geschrieben habe gerade mal nicht daran gedacht habe was ich eigentlich
genau schreib...

(Ich editier mal das goto weg, nicht das wegen dem noch mehr Flame entsteht...)

Und beschwer dich nicht wegen K&R ...
12/31/2011 19:08 MoepMeep#12
Eine Zuweisung statt einem Vergleich ist genau so ein verbrechen, mal ganz abgesehen von der extra Variable ;o