Skip to content

Commit e64b7a1

Browse files
committed
hide IP from console by default
1 parent 540225c commit e64b7a1

File tree

3 files changed

+48
-6
lines changed

3 files changed

+48
-6
lines changed

Framework/Intersect.Framework.Core/Config/LoggingOptions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ public partial class LoggingOptions
1313
public static readonly LoggingLevelSwitch LoggingLevelSwitch = new(LevelConvert.ToSerilogLevel(DefaultLogLevel));
1414

1515
private LogLevel _level = DefaultLogLevel;
16+
private bool _showSensitiveData;
17+
18+
public bool ShowSensitiveData
19+
{
20+
get => _showSensitiveData;
21+
set => _showSensitiveData = value;
22+
}
1623

1724
[JsonConverter(typeof(SafeStringEnumConverter))]
1825
public LogLevel Level

Framework/Intersect.Framework/Net/IPAddressExtensions.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,27 @@ public static class IPAddressExtensions
4040
},
4141
};
4242

43+
public static NetworkTypes GetNetworkType(this IPAddress address)
44+
{
45+
if (address.IsLoopback())
46+
{
47+
return NetworkTypes.Loopback;
48+
}
49+
50+
if (address.IsPrivate())
51+
{
52+
return NetworkTypes.PrivateNetwork;
53+
}
54+
55+
// ReSharper disable once ConvertIfStatementToReturnStatement
56+
if (address.IsSubnet())
57+
{
58+
return NetworkTypes.Subnet;
59+
}
60+
61+
return NetworkTypes.Public;
62+
}
63+
4364
public static bool IsLoopback(this IPAddress address) => MatchesNetworkTypes(address, NetworkTypes.Loopback);
4465

4566
public static bool IsPrivate(this IPAddress address) => MatchesNetworkTypes(address, NetworkTypes.PrivateNetwork);

Intersect.Server/Core/FullServerContext.cs

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System.Diagnostics;
2+
using System.Net;
23
using System.Resources;
34
using Intersect.Core;
5+
using Intersect.Framework.Net;
46
using Intersect.Plugins.Interfaces;
57
using Intersect.Rsa;
68
using Intersect.Server.Core.Services;
@@ -104,8 +106,6 @@ protected override void InternalStartNetworking()
104106
#endif
105107

106108
CheckNetwork();
107-
108-
Console.WriteLine();
109109
}
110110

111111
#region Networking
@@ -189,7 +189,7 @@ private bool CheckPort()
189189
return false;
190190
}
191191

192-
var portCheckResult = PortChecker.CanYouSeeMe(Options.Instance.ServerPort, out var externalIp);
192+
var portCheckResult = PortChecker.CanYouSeeMe(Options.Instance.ServerPort, out var externalIP);
193193

194194
if (!Strings.Portchecking.PortCheckerResults.TryGetValue(portCheckResult, out var portCheckResultMessage))
195195
{
@@ -198,11 +198,25 @@ private bool CheckPort()
198198

199199
ApplicationContext.Context.Value?.Logger.LogInformation(portCheckResultMessage.ToString(Strings.Portchecking.DocumentationUrl));
200200

201-
if (!string.IsNullOrEmpty(externalIp))
201+
if (!string.IsNullOrEmpty(externalIP))
202202
{
203+
var hideIP = !(Options.Instance?.Logging.ShowSensitiveData ?? false);
204+
string shownExternalIP = hideIP ? "********" : externalIP;
205+
if (IPAddress.TryParse(externalIP, out var parsedExternalIP))
206+
{
207+
var networkType = parsedExternalIP.GetNetworkType();
208+
if (networkType != NetworkTypes.Public)
209+
{
210+
shownExternalIP = externalIP;
211+
}
212+
213+
shownExternalIP = $"{shownExternalIP} ({parsedExternalIP.AddressFamily}, {networkType})";
214+
}
215+
216+
Console.WriteLine();
203217
Console.WriteLine(Strings.Portchecking.ConnectionInfo);
204-
Console.WriteLine(Strings.Portchecking.PublicIp, externalIp);
205-
Console.WriteLine(Strings.Portchecking.PublicPort, Options.Instance.ServerPort);
218+
Console.WriteLine(Strings.Portchecking.PublicIp, shownExternalIP);
219+
Console.WriteLine(Strings.Portchecking.PublicPort, Options.Instance!.ServerPort);
206220
}
207221

208222
if (portCheckResult == PortCheckResult.Inaccessible)

0 commit comments

Comments
 (0)