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); } |