#include <stdio.h>
#include <stdlib.h>


char *stringIP(unsigned int IP);
unsigned int intIP(char *string);


int main(void) {
    char startIP[16], endIP[16];

    printf("Введите начальный IP: ");
    scanf("%s", startIP);
    printf("Введите конечный IP: ");
    scanf("%s", endIP);
    
    for (unsigned int i = intIP(startIP) + 1; i < intIP(endIP); ++i) {
        printf("%s\n", stringIP(i));
    }

    return 0;
}


unsigned int intIP(char *string) {
    unsigned char *ptr = malloc(4);
    sscanf(string, "%hhu.%hhu.%hhu.%hhu", ptr+3, ptr+2, ptr+1, ptr);
    return *(unsigned int *) ptr;
}


char *stringIP(unsigned int IP) {
    char *string = malloc(16);
    unsigned char *ptr = (unsigned char *) &IP;

    sprintf(string, "%d.%d.%d.%d", ptr[3], ptr[2], ptr[1], ptr[0]);

    return string;
}