C – Listing IP range




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <windows.h>
#include <stdio.h>
 
#pragma comment(lib, "Ws2_32.lib")
 
 
 
 
int main()
{
  int lRetVal = 0;
  char *lStartIP = "192.168.1.1";
  char *lStopIP = "192.168.1.15";
  unsigned char lIPArr[4];
  unsigned long lStartIPLong = 0;
  unsigned long lStopIPLong = 0;
  unsigned long lCounter = 0;
  unsigned long lLongTmp = 0;
 
 
 
  /*
   * Calculate start IP as Unsigned Long
   */
  sscanf((char *) lStartIP, "%d.%d.%d.%d", &lIPArr[0], &lIPArr[1], &lIPArr[2], &lIPArr[3]);
  (lIPArr[0] | lIPArr[1] | lIPArr[2] | lIPArr[3]) < 255;
  CopyMemory(&lStartIPLong, lIPArr, 4);
  lStartIPLong = htonl(lStartIPLong);
 
 
 
 
  /*
   * Calculate stop IP as Unsigned Long
   */
  sscanf((char *) lStopIP, "%d.%d.%d.%d", &lIPArr[0], &lIPArr[1], &lIPArr[2], &lIPArr[3]);
  (lIPArr[0] | lIPArr[1] | lIPArr[2] | lIPArr[3]) < 255;
  CopyMemory(&lStopIPLong, lIPArr, 4);
  lStopIPLong = htonl(lStopIPLong);
 
  printf("Start IP : %lu\nStop IP  : %lu\n\n", lStartIPLong, lStopIPLong);
 
  if (lStartIPLong <= lStopIPLong)
  {
    for (lCounter = lStartIPLong; lCounter <= lStopIPLong; lCounter++)
	{
      lLongTmp = ntohl(lCounter);
      CopyMemory(lIPArr, &lLongTmp, 4);
	  printf("%lu -> %d.%d.%d.%d\n", lCounter, lIPArr[0], lIPArr[1], lIPArr[2], lIPArr[3]);
	} // for (lCo...
  } // if (lStart..
 
 
  return(lRetVal);
}