aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/genlist/files/genlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/genlist/files/genlist.c')
-rw-r--r--recipes/genlist/files/genlist.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/recipes/genlist/files/genlist.c b/recipes/genlist/files/genlist.c
new file mode 100644
index 0000000000..3170f36107
--- /dev/null
+++ b/recipes/genlist/files/genlist.c
@@ -0,0 +1,75 @@
+/* (Platform independant) IP lister (c)2000-1 Craig Cheetham
+ * Released under the GNU Licence. - Spread the source, not
+ * the binaries! (ahem fixed)
+ *
+ * E-Mail: craig_cheetham@yahoo.co.uk
+ *
+ */
+#include <stdio.h>
+#include <string.h>
+#include <netinet/in.h>
+
+union ipaddy
+{
+ unsigned char c_num[4];
+ unsigned long l_num;
+};
+
+int parse(char *string, char *dest)
+{
+ int i = 0;
+ unsigned long num;
+ char *p = string, *n;
+
+ strtok(p,".");
+
+ while(p && i<4) {
+ if((num = atol(p)) > 255) return 1;
+ dest[i++] = num;
+ p = strtok(0,".");
+ }
+
+ return 0;
+}
+
+int main (int argc, char **argv)
+{
+ union ipaddy source, dest;
+
+ if(argc < 3) {
+ printf("Platform independant IP lister, by Craig Cheetham (c)2000-1\n");
+ printf("===========================================================\n\n");
+ printf("Usage: %s <start ip> <end ip>\n\n", argv[0]);
+ printf("Examples:\n");
+ printf("\t\t%s 205 206\t\t\t# Class A scan\n", argv[0]);
+ printf("\t\t%s 205.214 205.215\t\t# Class B scan\n", argv[0]);
+ printf("\t\t%s 205.214.14 205.214.56\t# Class C scan\n", argv[0]);
+ exit(0);
+ }
+
+ source.l_num = dest.l_num = 0;
+
+ if(parse(argv[1], source.c_num)) {
+ fprintf(stderr, "Error: Source IP is jarg.\n");
+ return 0;
+ }
+
+ if(parse(argv[2], dest.c_num)) {
+ fprintf(stderr, "Error: Dest IP is jarg.\n");
+ return 0;
+ }
+
+ while(htonl(source.l_num) < htonl(dest.l_num)) {
+
+ if ((source.c_num[3]!=0) && (source.c_num[3]!=255))
+ printf("%u.%u.%u.%u\n",
+ source.c_num[0],
+ source.c_num[1],
+ source.c_num[2],
+ source.c_num[3]);
+
+ source.l_num = htonl(htonl(source.l_num)+1);
+ }
+
+ return 0;
+}