hostname client, ip client

This commit is contained in:
2026-02-09 08:30:34 +01:00
commit a7ff320857
13 changed files with 282 additions and 0 deletions

4
client2/.clangd Normal file
View File

@@ -0,0 +1,4 @@
CompileFlags:
Add:
- -Isrc
- -std=c11

69
client2/Makefile Normal file
View File

@@ -0,0 +1,69 @@
APPNAME = networkc
SRCDIR = src
BUILDDIR = build
VENDORDIR = vendor
target ?= linux
profile ?= debug
valgrind ?= false
ifeq ($(target), windows)
CC = x86_64-w64-mingw32-gcc
EXT = .exe
OPT_FLAGS = -O2 -DNDEBUG
INCLUDES = -I$(SRCDIR)
LIBS =
# Command to copy DLL after build
POST_BUILD_CMD = #@cp .. $(BUILDDIR); @echo "Build complete."
else
CC = gcc
EXT =
INCLUDES = -I$(SRCDIR)
LIBS =
POST_BUILD_CMD = @echo "Build complete."
# Profile Logic
ifeq ($(profile), release)
OPT_FLAGS = -O3 -DNDEBUG -march=native
else
OPT_FLAGS = -O0 -g -DDEBUG -Wall -Wextra
endif
endif
# Combine Flags
CFLAGS = -Wall $(OPT_FLAGS) $(INCLUDES)
SRC = $(shell find $(SRCDIR) -name "*.c")
OBJ = $(SRC:$(SRCDIR)/%.c=$(BUILDDIR)/%.o)
all: $(BUILDDIR)/$(APPNAME)$(EXT)
$(BUILDDIR)/$(APPNAME)$(EXT): $(OBJ)
@echo "Linking $@ (Target: $(target), Profile: $(profile))"
@mkdir -p $(dir $@)
$(CC) $(OBJ) -o $@ $(LIBS)
$(POST_BUILD_CMD)
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
@echo "Compiling $<"
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(BUILDDIR)
ifeq ($(valgrind), true)
RUN_CMD = valgrind --leak-check=full ./$(BUILDDIR)/$(APPNAME)$(EXT)
else
RUN_CMD = ./$(BUILDDIR)/$(APPNAME)$(EXT)
endif
run: all
$(RUN_CMD)
.PHONY: all clean run

View File

@@ -0,0 +1,21 @@
[
{
"file": "src/main.c",
"arguments": [
"gcc",
"-Wall",
"-O0",
"-g",
"-DDEBUG",
"-Wall",
"-Wextra",
"-Isrc",
"-c",
"src/main.c",
"-o",
"build/main.o"
],
"directory": "/home/tom/Dev/networkc",
"output": "build/main.o"
}
]

29
client2/src/main.c Normal file
View File

@@ -0,0 +1,29 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
int main() {
char *hostname = "www.motionweb.hu";
char ip[100];
struct hostent *he;
struct in_addr **addr_list;
int i;
if ((he = gethostbyname(hostname)) == NULL) {
puts("gethostbyname error\n");
return 1;
}
// Cast the h_addr_list to in_addr , since h_addr_list also has the ip address in long format only
addr_list = (struct in_addr **)he->h_addr_list;
for (i = 0; addr_list[i] != NULL; i++) {
// return the first one
strcpy(ip, inet_ntoa(*addr_list[i]));
}
printf("%s resolved to : %s", hostname, ip);
return 0;
}