1
0
mirror of https://github.com/chylex/Discord-History-Tracker.git synced 2025-08-18 13:31:42 +02:00
Files
.github
.idea
app
.idea
Desktop
Resources
Server
Database
Endpoints
Service
AppWebServer.cs
ServerAccessToken.cs
ServerStartup.cs
ServerUtils.cs
Server.csproj
Session.cs
SessionSettings.cs
Utils
.gitignore
Directory.build.props
DiscordHistoryTracker.sln
Version.cs
build.bat
build.sh
empty.dht
global.json
lib
tools
web
.gitattributes
.gitignore
LICENSE.md
README.md
2023-07-21 18:47:21 +02:00

24 lines
661 B
C#

using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
namespace DHT.Server.Service;
public static partial class ServerUtils {
public static ushort FindAvailablePort(ushort min, ushort max) {
var properties = IPGlobalProperties.GetIPGlobalProperties();
var occupied = new HashSet<int>();
occupied.UnionWith(properties.GetActiveTcpListeners().Select(static tcp => tcp.Port));
occupied.UnionWith(properties.GetActiveTcpConnections().Select(static tcp => tcp.LocalEndPoint.Port));
for (int port = min; port < max; port++) {
if (!occupied.Contains(port)) {
return (ushort) port;
}
}
return min;
}
}