aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Server/Common/NetworkUtils.h
diff options
context:
space:
mode:
authorqwasdrizzel <145519042+qwasdrizzel@users.noreply.github.com>2026-03-16 21:44:26 -0500
committerGitHub <noreply@github.com>2026-03-16 21:44:26 -0500
commitce739f6045ec72127491286ea3f3f21e537c1b55 (patch)
treef33bd42a47c1b4a7b2153a7fb77127ee3b407db9 /Minecraft.Server/Common/NetworkUtils.h
parent255a18fe8e9b57377975f82e2b227afe2a12eda0 (diff)
parent5a59f5d146b43811dde6a5a0245ee9875d7b5cd1 (diff)
Merge branch 'smartcmd:main' into main
Diffstat (limited to 'Minecraft.Server/Common/NetworkUtils.h')
-rw-r--r--Minecraft.Server/Common/NetworkUtils.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/Minecraft.Server/Common/NetworkUtils.h b/Minecraft.Server/Common/NetworkUtils.h
new file mode 100644
index 00000000..c77d4506
--- /dev/null
+++ b/Minecraft.Server/Common/NetworkUtils.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include "StringUtils.h"
+
+#include <WS2tcpip.h>
+
+namespace ServerRuntime
+{
+ namespace NetworkUtils
+ {
+ inline std::string NormalizeIpToken(const std::string &ip)
+ {
+ return StringUtils::ToLowerAscii(StringUtils::TrimAscii(ip));
+ }
+
+ inline bool IsIpLiteral(const std::string &text)
+ {
+ const std::string trimmed = StringUtils::TrimAscii(text);
+ if (trimmed.empty())
+ {
+ return false;
+ }
+
+ IN_ADDR ipv4 = {};
+ IN6_ADDR ipv6 = {};
+ return InetPtonA(AF_INET, trimmed.c_str(), &ipv4) == 1 || InetPtonA(AF_INET6, trimmed.c_str(), &ipv6) == 1;
+ }
+ }
+}