diff --git a/server b/server
new file mode 100755
index 0000000000000000000000000000000000000000..a588ded5d9cb376ad0abcfd88481af73387f827b
Binary files /dev/null and b/server differ
diff --git a/server.c b/server.c
new file mode 100644
index 0000000000000000000000000000000000000000..7a00d335358684cd3d45e46b5039322ed4235fb9
--- /dev/null
+++ b/server.c
@@ -0,0 +1,58 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h> 
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[]){
+	struct addrinfo info, *res, *p;
+	int status;
+	char ipstr[INET6_ADDRSTRLEN];
+
+	if (argc <2){
+		fprintf(stderr,"ERROR, no port provided\n");//to check if there is no port provided at start
+		exit(1);
+	}
+
+	memset(&info, 0, sizeof(info));
+	info.ai_family = AF_UNSPEC; ///sets it to IPv4
+	info.ai_socktype = SOCK_STREAM; //TCP connection stream oriented
+	info.ai_flags = AI_PASSIVE; //use my current IP adress
+
+	if((status =  getaddrinfo(NULL, argv[1], &info, &res) != 0)){
+		fprintf(stderr,"ERROR, no port provided\n");//to check if getaddrinfo gets any addrinfos
+		exit(1);
+	}
+
+	for (p = res; p!= NULL; p = p->ai_next)
+	{
+		void *addr;
+        char *ipver;
+
+
+        if (p->ai_family == AF_INET) { // IPv4
+            struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr;
+            addr = &(ipv4->sin_addr);
+            ipver = "IPv4";
+        } else { // IPv6
+            struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr;
+            addr = &(ipv6->sin6_addr);
+            ipver = "IPv6";
+        }
+
+        inet_ntop(p->ai_family, addr, ipstr, sizeof ipstr);
+        printf("  %s: %s\n", ipver, ipstr);
+	}
+
+
+	 freeaddrinfo(res);
+
+	 return 0;
+
+
+
+}
\ No newline at end of file