* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
* This class contains methods to generate IP Address(IPV4) Sequence.
*/
public class IPAddressGenerator {
/**
* Program starts here
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
IPAddressGenerator ipGen = new IPAddressGenerator();
String ipStartingSeq = "252.253.254.251";
int numberOfIP = 2000;
ipGen.generateNextIPSequence(ipStartingSeq, numberOfIP);
}
public void generateNextIPSequence(String address, int count)
throws Exception {
String nextIpAddress = address;
for (int i = 0; i < count; i++) {
System.out.println(nextIpAddress);
nextIpAddress = getNextIPAddress(nextIpAddress);
}
}
public String[] getPartsOfIpAddress(String ipAddress) {
String[] elements = ipAddress.split("\\.");
return elements;
}
public String getNextIPAddress(String ipAddress) throws Exception {
String[] elements = getPartsOfIpAddress(ipAddress);
if (elements != null && elements.length == 4) {
Integer part1 = Integer.parseInt(elements[0]);
Integer part2 = Integer.parseInt(elements[1]);
Integer part3 = Integer.parseInt(elements[2]);
Integer part4 = Integer.parseInt(elements[3]);
if (part4 < 255) {
String ip = part1 + "." + part2 + "." + part3 + "." + (++part4);
return ip;
} else if (part4 == 255) {
if (part3 < 255) {
String ip = part1 + "." + part2 + "." + (++part3) + "."
+ (0);
return ip;
} else if (part3 == 255) {
if (part2 < 255) {
String ip = part1 + "." + (++part2) + "." + (0) + "."
+ (0);
return ip;
} else if (part2 == 255) {
if (part1 < 255) {
String ip = (++part1) + "." + (0) + "." + (0) + "."
+ (0);
return ip;
} else if (part1 == 255) {
throw new Exception("IP Range Exceeded -> "+ipAddress);
}
}
}
}
}
return null;
}
}