Start by looking at your code with teh debugger, and follow it through to see exactly what is happening.
Then, you will see that it's quite simple:
string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]);
int value2 = Int32.Parse(tokens[1]);
int value3 = Int32.Parse(tokens[2]);
int value4 = Int32.Parse(tokens[3]);
string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokens[0]);
int valueTow = Int32.Parse(tokens[1]);
int valueThree = Int32.Parse(tokens[2]);
int valueFour = Int32.Parse(tokens[3]);
You need to use the result of the second split, instead of the first split again:
string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]);
int value2 = Int32.Parse(tokens[1]);
int value3 = Int32.Parse(tokens[2]);
int value4 = Int32.Parse(tokens[3]);
string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokensTow [0]);
int valueTow = Int32.Parse(tokensTow [1]);
int valueThree = Int32.Parse(tokensTow [2]);
int valueFour = Int32.Parse(tokensTow [3]);
And don't forget that if you set the same value repeatedly in a loop, it will only ever contain the last value set when the loop exits:
for (iOne = value4; iOne < valueFour; iOne++)
{
string IpOne = value1 + "." + value2 + "." + value3 + "." + iOne + "\n";
Enumurator.Text = IpOne + "\n";
}
It's possible that you want to use "+=" instead of "=" in that last line. (Or better, a StringBuilder)