summaryrefslogtreecommitdiff
path: root/src/bin/cidr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/cidr.c')
-rw-r--r--src/bin/cidr.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/bin/cidr.c b/src/bin/cidr.c
index fe44668..1cef7d4 100644
--- a/src/bin/cidr.c
+++ b/src/bin/cidr.c
@@ -1,4 +1,7 @@
#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <arpa/inet.h>
int main(int argc,char *argv[]) {
unsigned int cidr;
@@ -9,17 +12,16 @@ int main(int argc,char *argv[]) {
printf("example: cidr 192.168.0.1/24\n");
return 1;
}
- if(!strchr(argv[1],'/')) {
- cidr=32;
- net=argv[1];
- } else {
+ if(!strchr(argv[1],'/')) cidr=32;
+ else {
cidr=atoi(strchr(argv[1],'/')+1);
*strchr(argv[1],'/')=0;
- net=htonl(inet_addr(argv[1]));
}
+ net=htonl(inet_addr(argv[1]));
printf("%d.%d.%d.%d ",net>>24&255,net>>16&255,net>>8&255,net&255);
- mask=-1;
+ mask=~0;
mask>>=(32-cidr);
mask<<=(32-cidr);
printf("%d.%d.%d.%d\n",mask>>24&255,mask>>16&255,mask>>8&255,mask&255);
+ return 0;
}